2013-04-16 2 views
1

Я делаю свою домашнюю работу, и я запутался между «печатью» и «возвратом».
В чем разница между печатью и возвратом в python?

Например, когда я попросил сделать функцию, которая возвращает все буквы в («a», «e», «i», «o», «u»), почему выход не может выйти .? когда я просто кладу четкости функции (бывший all_letters («привет моей жены»), но когда я ставлю «печатные буквы» есть выход

ответ

4

с return, вы можете присвоить переменный:

def my_funct(x): 
    return x+1 

Вы можете сделать y = my_funct(5). y теперь равны 6.

Хэ lp описать это, подумайте о функции, которая будет машиной (подобно тому, что они используют в некоторых математических классах). Путем включения переменных (в этом случае x) функция выдает (или returns) что-то (в данном случае x+1). Переменные - это вход, а вывод return.

Однако, с print, значение просто отображается на экране.

Если изменить функцию:

def my_funct(x): 
    print(x+1) 

А потом делать y = my_funct(x), y равно None, потому что print() не возвращает ничего.

С помощью машинной метафоры вы включаете переменные (опять же, x), но вместо вывода чего-то это просто показывает вам, что это равно (опять же, x+1). Однако он ничего не выводит.

+1

ок! спасибо .. –

3

return возвращает значение в область вызова. print (если кто-то не выполнил какую-либо переделку обезьян), то данные передаются в стандартный вывод. Возвращаемое значение может быть впоследствии использовано из области вызова, тогда как что-то напечатанное отправляется в ОС, и ОС обрабатывает его соответствующим образом.

>>> def printer(x): 
...  print x * 2 
... 
>>> def returner(x): 
...  return x * 2 
... 
>>> printer(2) 
4 
>>> y = printer(2) 
4 
>>> y is None 
True 
>>> returner(2) 
4 
>>> y = returner(2) 
>>> y 
4 

Интерактивная консоль немного вводит в заблуждение, иллюстрирующий это, так как он просто печатает строковое представление возвращаемого значения, но разница в стоимости присвоенного y в приведенном выше примере является иллюстративным. y: None при присвоении результата printer, поскольку для любой функции, которая не имеет явного возвращаемого значения, существует неявный return None.

2

return это ключевое слово в то время как print функция:

return полезно, если вы хотите, чтобы присвоить значение переменной.

print просто позволяет печатать текст в командной строке:

def foo(): 
    return 2 
bar = foo() # now bar == 2 
print(bar) # prints 2 
+0

большое спасибо (: –

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