f.write пишет только неизмененные переменные? - PullRequest
0 голосов
/ 08 марта 2020

Вот мой обобщенный код:

Var1 = 10
Var2 = 100
Var3 = 300
Var4 = 0

Amount = input("Blahblahblah amount for Var 4: ")
Amount2 = input("Blahblahblah amount for Var 1: ")

Amount2 + Amount * Var3 == Var4
Var4 - Var2 == Amount2
 if Amount2 == 20:
     Amount - Var4
 else:
     Amount + Var4 == Var 2

Y = input("Type 'Y' to continue:")
if (Y == "Y"):
    try:
       with open("Test.txt", "a") as f:
           f.write(f"Var 2 == {Var2}, Var 4 == {Var4} \n")
        except Exception as e:
            print(e)

Проблема в том, что в Test.txt записывается Var 2 == 100, Var 4 == 0 вместо реального ответа. Поэтому, что бы я ни написал в «Сумме» или «Сумме 2», оно всегда будет = Var 2 == 100, Var 4 == 0. Это глупая ошибка, которую я не вижу?

1 Ответ

1 голос
/ 08 марта 2020

В этих строках вы не переназначаете значения своим переменным.

Amount2 + Amount * Var3 == Var4
Var4 - Var2 == Amount2
if Amount2 == 20: 
   Amount - Var4
else:
   Amount + Var4 == Var 2

Для переназначения значения переменным используйте:

# definition
a = 1
b = 10
# reassignment
a = a + b
# the new value of a will be 11
# a = 1 + 10

Более того, избегайте вызова переменных с заглавными буквами (это следует использовать только при определении классов).

...