Я думаю, что лучший способ описать то, что я пытаюсь решить, состоит в следующем:
У меня есть цикл из трех функций, где изначально входное значение задается пользователем, скажем, input1
. Затем первые две функции, скажем, function1
и function2
используют этот вход для создания числа, скажем, output1
и output2
.
Тогда третья функция также принимает изначально заданное входное значение и теперь использует output1
и output2
для изменения ввода, делая его input2
.
Теперь я хочу сделать все это снова, но используя input2
в качестве нового входа для всех трех функций. По какой-то причине я не могу сделать это в Python. Поскольку он всегда будет использовать это изначально заданное входное значение для функций.
Я сделал output1
и output2
глобальными, поэтому его можно использовать в function3
. function3
возвращает «новый» input1
, который я хочу использовать в качестве ввода для следующей итерации, но это не работает.
def function1(input1):
global output1
output1 = input1 * 3
return output1
def function2(input1):
global output2
output2 = input1 * 4
return output2
def function3(input1):
output3 = input1 * output1 * output2
input1=output3
return input1
input1 = float(raw_input('Please give some input number: '))
for i in range(2):
function1(input1)
function2(input1)
function3(input1)
Если я введу значение '2' на первой итерации, это даст:
output1 становится 6
output2 становится 8
output3 становится 96
Тогда для итерации 2 я бы ожидал 96 в качестве ввода, и, таким образом,
output1 становится 288
output2 становится 384
output3 становится 10616832.
Но вместо этого он просто повторяет первый цикл с точно такими же значениями.