2013-04-16 5 views
-2

멍청한 질문이지만, : a가 90 인 경우를 가정 해 보겠습니다. 그리고 b는 100이다. "90은 100보다 작습니다" "a가 b보다 작습니다"대신 "90이 100보다 작습니다"(인쇄되지 않음) 어떻게 반환합니까?파이썬에서 다른 유형의 반환하기

쉼표하지만 제대로 수행하지 않는다면, "(90,"은 "100"보다 작습니다) "a와 b를 문자열로 변환해야한다고 생각하십니까?

+1

당신의 Q는 당신이 문자열을 반환하기를 제안하는 것처럼 보인다. 그 밖의 무엇을 돌려주고 싶습니까? 나중에 평가할 표현식? 그것은 가능할 것이다. - 그리고 아마도 코드 스 니펫이 당신이 시도한 것을 밝힐 수 있습니다. –

+0

'print()'는 여러 개의 인수를 전달할 수 있다는 점에서 멋지며, 문자열로 변환하여 공백으로 결합합니다. 대신에 똑같은 일을해야하며, 더 좋은 방법은 문자열 형식을 사용하는 것입니다. –

+0

당신이 묻고 자하는 것에 야생적인 추측을 할 수있는 정도까지, 그것은 당신의 질문의 제목과 아무런 관련이 없습니다. 우선 기초를 더 공부해야한다고 생각합니다. –

답변

4
>>> a = 90 
>>> b = 100 
>>> '{0} is less than {1}'.format(*sorted([a, b])) 
'90 is less than 100' 

이 당신은 이미 당신은 너무 큰 만드는 것입니다있는 .format를 사용하는 경우 문자열에 어떤 변수를 변환 할 필요가 없습니다 다른

'{0} is less than {1}'.format(a, b) 

보다 큰 알고 있다면 훨씬 간단합니다!

1
def main():  
    a = 90 
    b = 100 
    msg = foo(a,b) 
    print msg 

def foo(a,b): 

    if a < b: 
     msg = "a = %d is less than b = %d " % (a,b) 
     return (msg) 
    elif a> b: 
     msg = "b = %d is less than a = %d " % (b,a) 
     return (msg) 
    else: 
     msg = "a = %d is eual to a = %d " % (a,b) 
     return (msg) 


if __name__=="__main__": main() 
0

당신은이 같은 튜플 반환 할 수 있습니다 :

def func(): 
    # do stuff 
    return (90, 'is less than', 100) 

는 그런 다음 90와 동일합니다

value1, text, value2 = func() 

값 1과 같은 작업을 수행하여 다음을 얻을 수를 텍스트가 될 것입니다 '보다 작음', finnally, value2는 100과 같습니다.

그 방법 중 하나입니다. 여기 또 다른 하나는 사전을 반환하는 것입니다.

def func(): 
    # do stuff 
    return {'a': 90, 
      'text': 'is less than', 
      'b': 100} 

그럼 당신은 너무로 사용할 수 있습니다 :이 같은 일을 여러 가지 방법이 있습니다

ret = func() 
print ret['a'] # prints 90 
print ret['text'] # prints is less than 
print ret['b'] # prints 100 

. 이를 위해 특정 객체를 만들 수도 있습니다. 그것은 당신이 당신의 데이터를 어떻게 사용 하느냐에 달려있다.

관련 문제