#python #return
#python #Возврат
Вопрос:
Я определил следующую функцию:
def test():
return 1
И как только я наберу следующее в консоли:
test()
Я получаю ожидаемое возвращаемое значение 1. Но я хочу, чтобы значение 1 возвращалось дважды, поэтому я ввожу это в консоль:
values = [1,2]
for i in values:
test()
Но вместо этого я не получаю никаких выходных данных сейчас. Почему он не выдает никаких выходных данных и как я мог бы отредактировать его, чтобы это было так?
Комментарии:
1.
print(test())
? Если вы работаете в REPL, подобном интерпретатору, выходные данные отображаются только для выражений или явных2. В первом случае REPL выводит возвращаемое значение 1, во втором случае блок кода ничего не возвращает и, следовательно, ничего не печатается
Ответ №1:
Прежде всего, вы должны исправить свой цикл for . Если вы хотите указать, сколько раз должен выполняться цикл for, вам следует использовать функцию range() .
for x in range(2):
test()
и, во-вторых, возвращаемое значение не выводит значения, если вы его не распечатаете, т.е print(test())
Ответ №2:
На самом деле, вам нужно распечатать возвращаемое значение, чтобы отобразить его в консоли. Попробуйте это:
values = [1, 2]
for i in values:
print(test())
Вы можете спросить, почему это сработало в первом случае. У меня нет точного ответа, но я могу дать вам подсказку. Возвращаемое значение «последней строки кода» автоматически печатается. Это неправильное / хорошее объяснение. Возможно, кто-то еще может помочь с этим.
Кстати, вот лучший способ написания вышеупомянутого фрагмента кода:
for i in range(2):
print(test())
Ответ №3:
Я не знаю, почему у вас это не работает, но когда я запускаю этот код на своем компьютере, все в порядке
def test():
return 1
print("First case:")
print(test())
print("Second case:")
list = [1,2]
for i in list:
print(test())
ВЫВОД:
First case:
1
Second case:
1
1
Ответ №4:
просто поместите print в test() внутри цикла for, как показано ниже
for i in values:
print(test())
Теперь вывод будет:
1
1
Ответ №5:
Как указывают другие ответы, выполнение print
внутри цикла выведет значение. Тонкость, о которой никто больше не упоминал, заключается в том, что причина, по которой цикл for не работает сам по себе, заключается в том, что for
не возвращает значение. Выражения внутри цикла вычисляются, но их значения отбрасываются.
Если вы хотите выполнить цикл, который возвращает значение выражений внутри него (чтобы вы могли видеть эти значения в интерпретаторе без необходимости их распечатывать или делать что-то еще с этими значениями в следующей части вашей программы), просмотр списка — хороший способ:
>>> def test():
... return 1
...
>>> values = [1,2]
>>> [test() for i in values]
[1, 1]