2013-04-16 5 views
-2

Noob вопрос, но: Скажите, что у вас есть a, что равно 90; и b, что равно 100; и вы хотите вернуть «90 меньше, чем 100» Как вы его вернуть (не печатать) «90 меньше, чем 100», а не «а меньше б»Возвращение различных типов в Python

Я попытался с помощью но это не делает его правильно, он возвращает «(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' 

Это гораздо проще, если вы уже знаете, один больше, чем другие

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

Вам не нужно, чтобы преобразовать переменные в строку при использовании .format что и делает это так здорово!

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) 

Тогда вы можете получить это, делая что-то вроде

value1, text, value2 = func() 

значению1 будет равен 90, текст будет равный «меньше», и в конечном итоге значение2 будет равно 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 

Есть много способов сделать что-то подобное. Вы можете даже создать для этого определенный объект. Это зависит от того, как вы хотите использовать свои данные.

Смежные вопросы