如何将简单 python 计算器的结果存储在变量中

How to store result of simple python calculator in variable

我是Python的初学者,最近才开始学习。

在了解了 if、elif 和 else 语句后,我决定尝试制作一个简单的计算器。

现在,几个小时后我想知道如何改进它并使其更复杂。

我正在尝试将前两个数字的加法、减法、除法或乘法结果存储在一个变量中。完成此操作后,我想重新创建计算器,但我已经有了第一个数字。

我也 运行 遇到我的 continue1 if 语句的问题,出于某种原因,即使用户输入 "no" 脚本继续而不是显示消息。

非常感谢任何帮助,谢谢!

Python代码:

num1 = float(input("Please enter your first number: "))
num2 = float(input("Please enter your second number: "))
operator = input("Please enter operator: ")

if operator == "/":
    print(num1 / num2)
elif operator == "+":
    print(num1 + num2)
elif operator == "-":
    print(num1 - num2)
elif operator == "*":
    print(num1 * num2)
else:
    print("FATAL ERROR")

num3 = num1 / num2
num3 = num1 - num2
num3 = num1 + num2
num3 = num1 * num2


continue1 =  input ("Would you like too continue? [Yes/No]")


if continue1 == "yes" or "Yes":
    operator1 = num4 = float(input("Please enter second number: "))
else:
    print("Fatal error")

input("please enter operator")

if operator == "/":
    print(num3 / num4)
elif operator == "+":
    print(num3 + num4)
elif operator == "-":
    print(num3 - num4)
elif operator == "*":
    print(num3 * num4)
else:
    print("Please press enter to close.")



input("Press Enter to Exit")

我重新创建了您的代码,现在可以使用了:

def op(operator,num1,num2):
    global num3
    if operator == "/":
        num3 = num1 / num2
    elif operator == "+":
        num3 = num1 + num2
    elif operator == "-":
        num3 = num1 - num2
    elif operator == "*":
        num3 = num1 * num2
    else:
        print("FATAL ERROR")

num1 = float(input("Please enter your first number: "))
num2 = float(input("Please enter your second number: "))
operator = input("Please enter operator: ")
op(operator,num1,num2)
print(num3)

continue1 =  input ("Would you like too continue? [Yes/No]").lower()

if continue1 in ["yes", "y"]:
    num4 = float(input("Please enter second number: "))
    operator = input("please enter operator")
    op(operator,num3,num4)
    print(num3)
else:
    print("Fatal error")

input("Press Enter to Exit")
num1 = float(input("Please enter your first number: "))
num2 = float(input("Please enter your second number: "))
keepCalculate=True
while keepCalculate:
    operator = input("Please enter operator: ")
    if operator == "/":
        print(num1 / num2)
    elif operator == "+":
        print(num1 + num2)
    elif operator == "-":
        print(num1 - num2)
    elif operator == "*":
        print(num1 * num2)
    else:
        print("FATAL ERROR")

    continue1 =  input ("Would you like too continue? [Yes/No]")
    if continue1== "yes" or "Yes":
       keepCalculate=True
    else:
        keepCalculate=False

最简单的方法做你想做的事

  1. 只需使用

    num3 = num1 + num2

存储代码

  1. "or" 在编程中不像现实生活中那样工作,它用于分隔 2 个不同的条件,因此使用:

    if continue1 == "yes" or continue1 == "Yes":

在第一部分中,只需分配给一个变量(然后根据需要打印):

if operator == "/":
    num3 = num1 / num2
elif operator == "+":
    num3 = num1 + num2
elif operator == "-":
    num3 = num1 - num2
elif operator == "*":
    num3 = num1 * num2
else:
    print("FATAL ERROR")

print(num3)

关于你问题的第二部分,在你的陈述中:

if continue1 == "yes" or "Yes":

这是错误的,因为 or 是一个运算符,它将把它两边的两个东西结合起来(通常用于这两个东西中的每一个都计算为 TrueFalse), 所以你可以有例如:

if continue1 == "yes" or continue1 == "Yes":

也可以加括号控制执行顺序,如下图。在这种情况下,它们不会影响结果,因为 == 运算符已经在 or 之前求值,但它们可能会使阅读更清楚。

if (continue1 == "yes") or (continue1 == "Yes"):

您也可以这样做:

if continue1 in ("yes", "Yes"):

条件语句的原始形式出了什么问题的详细信息在现阶段可能并不重要,但为了完整起见,我提到了它们。如果您输入 "No",那么整个表达式实际上将计算为 "Yes"continue1 == "yes" 计算为 False,然后 False or "Yes" 计算为 "Yes" ). if 语句然后将值 "Yes"(非空字符串)视为真值,因此执行取决于条件的代码。

无论您做什么,此代码都会保留 num3 = num1 * num2 的值作为结果。你应该把这些行放在每个 if, elif