首页 > 解决方案 > 计算器执行循环直到“退出”

问题描述

我必须在 python 3 上做这个计算器,它必须循​​环执行,直到用户键入exit. 此外,在用户输入无效字符之前进行编程,例如当要求输入运算符或数字时的字母。

我必须使用while, if... 但是,我不能使用import.

while True:

    operator = input("Give me an operator or \"exit\" to stop : ")

    if operator == "exit":
        break
    if operator != "+" or "-" or "*" or "/":

        print ("You must enter an operator")
        break
    no1 = input("Enter a number: ")
    no2 = input("Enter a number: ")
    if operator == "+":
        output = int(num1) + int(num2)
    elif operator == "-":
        output = int(num1) - int(num2)
    elif operator == "*":
        output = int(num1) * int(num2)
    else :
        output = int(num1) / int(num2)
    print("The result is " + str(result))
print("See you soon!")

我希望当我们输入除运算符之外的任何内容时它实际上不会停止,我希望它循环回:

operator = input("Give me an operator or \"exit\" to stop : ")

标签: pythonpython-3.x

解决方案


您将在下面找到您的代码按预期工作,但是让我们从一般规则开始。

  • 请注意,当您声明变量时,请在代码的其他地方使用相同的变量。
  • 在尝试执行脚本之前测试代码的简单部分。你测试操作员的条件完全被打破了。
while True:

    operator = input("Give me an operator or \"exit\" to stop : ")

    if operator == "exit":
        break
    if operator not in [ "+", "-", "*" , "/"]: #<== here you condition is wrong ,do this instead

        print ("You must enter an operator")
        continue
    try:
        num1 = int(input("Enter a number: ")) #
        num2 = int(input("Enter a number: ")) # <== both of this variable are not use else where ,rename to be consitdnt with the rest of your code
    except ValueError:
        print("Please enter an integer") 
    if operator == "+":
        output = num1 + num2
    elif operator == "-":
        output = num1 - num2
    elif operator == "*":
        output = num1 * num2
    else :
        output = num1 / num2
    print("The result is " + str(output)) #<=== here also, results was not defined 
print("See you soon!")

推荐阅读