如何存储变量并随后在计算器中使用它?

How to store a variable and use it afterwards in a calculator?

这是我的代码:

cont = "Y"
greeting = print("Hi, welcome to the calculator. What is your calculation?: ")


num1 = float(input("What is the first number you would like to use? "))
op = input("Select operation: (+, -, /, *, **) ")
num2 = float(input("What is the second number you would like to use? "))

if op == '+':
    x = num1 + num2
    print (x)
elif op == '-':
    x = num1 - num2
    print(x)
elif op == '/':
    x = num1 / num2
    print(x)
elif op == '*':
    x = num1 * num2
    print(x)
elif op == '**':
    x = num1 ** num2
    print(x)
else:
    print("error")
    pass


cont = input("Would you like to use another term? (Y/N): ")

while cont == "Y":
   op1 = input("Select operation: (+, -, /, *, **)")
   num = float(input(("Input the next number: ")))
   if op1 == '+':
        y = x + num
        print (y)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '-':
        z = x - num
        print(z)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '/':
        div = x / num
        print(div)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '*':
        mult = x * num
        print(mult)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '**':
        car = (x ** num)
        print(car)
        cont = input("Would you like to continue? (Y/N): ")


   else:
        print("error")
        pass
    
else:
       print("Finished")

基本上,它在添加 num1 和 num2 时起作用,它再次起作用,因为它使用 x 和新数字 (num) 以及一个新运算符。但是,当继续 AGAIN 时会出现问题,因为程序使用 x 而不是新数字 (y/z/div/mult/car).

抱歉,如果这个措辞不好(我是新手),但基本上我希望它在选择继续两次后使用新变量,但我不知道该怎么做。

您可以重复使用同一个变量。不用写 y/z/div/mult/car = ...,您可以将所有的替换为 x = ....

您可以使用列表来存储数据

some_data = 5
some string = "hello"
my_list = [] # create empty list that can store any data type (int, str, float...)

my_list.append(some_data) # my_list = [5]
my_list.append(some_string) # my list = [5, "hello"]

# to access the element within the list you can use the subscript operator '[]'
# for example my_list[0] returns 5, my list[1] returns "hello"
# my_list[:] returns the entire list

您应该始终将最后一个答案指定为 x,这样每次重复它时它都可以工作。例如:

while cont == "Y":
   op1 = input("Select operation: (+, -, /, *, **)")
   num = float(input(("Input the next number: ")))
   if op1 == '+':
        x += num  # Re-assign to x
        print (x)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '-':
        x -= num  # re-assign to x
        print (x)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '/':
        x /= num  # Re-assign x
        print (x)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '*':
        x += num  # Re-assign x
        print (x)
        cont = input("Would you like to continue? (Y/N): ")
   elif op1 == '**':
        x **= num  # Re-assign x
        print (x)
        cont = input("Would you like to continue? (Y/N): ")


   else:
        print("error")
        pass
    
else:
       print("Finished")

现在这个程序可以永远工作,因为最后的答案总是重新分配给 x。

如果您不确定我用来执行操作的代码行,例如:

x += num  # Same as x = x + num

x **= num  # Same as x = x**num

它只会让您的代码更简洁。

结论:通过让变量 'x' 始终被分配给先前计算的答案,我们可以无限地重复对它的操作,因为它总是被存储,然后重新分配以适应下一次迭代程序。