Приветствия Pythonic world. День 5 обучения Python, и я борюсь с функциями, которые вызывают другие функции. Это будет просто для некоторых людей ...Python 3.3: Функции, вызывающие другие функции
В этом коде:
def powers_of_x(x):
print ('Powers Function with ', x, ' entered:')
for n in range (-3, 4, 1):
print ('power of ', n, "= ", x**n)
return 'First one ended (using variables with defined range)'
def powers_of_9():
print ("Powers function for 9 is:")
powers_of_x(9)
return 'Second one ended (no passed variable here)'
def combined():
x = int(input('Enter value to start:'))
print ('First, run powers_of_x function for entered value of: ', x)
powers_of_x(x)
print ('Second, run powers_of_9 function for powers of 9:')
powers_of_9()
return 'All now finished.'
Первая функция powers_of_x(x)
отлично работает на своей собственной. Так же и второй, powers_of_9()
. В обоих случаях появляется напечатанное сообщение return
.
Но когда они вызывается третьей функцией combined()
, окончательное сообщение return
от каждого («Первый конец ...» и «Второй завершено ...») не печатается. Почему нет? «Все готово» появляется, как и должно быть. Благодарим за любые исправления.
[Отредактировано] Извините, но я не могу сказать это хорошо. Мой вопрос заключался в том, почему текст «First one закончился ...» и «Second one закончился ...» появляются, когда первые две функции запускаются отдельно, но не при выполнении функции combined()
. Является ли это особенностью return
? Если это так, я буду придерживаться использования print
.
FYI, возвращаемые значения, как правило, не заключены в скобки в коде Python. Чаще всего писать 'return 'some string'', чем' return (' some string ') '. – senshin
@senshin Спасибо за это - скобки теперь удалены. –