输入错误时的基本计算器错误msg应该出现,但无论输入如何都会出现

时间:2017-08-14 04:18:27

标签: python-3.x

我是编码的新手,决定制作一个基本的计算器。在我完成并且它正在工作之后,我决定在输入错误的变量时生成文本。我使用了这段代码,但无论我输入什么,它都会运行。任何修复都将不胜感激!

while user_input != ("1","2","3","4"):
    print("Please enter 1, 2, 3 or 4!")
    user_input = input("Choice:")

这是完整的代码:

import time

def Add(x, y):
    return x + y # x is added to y

def Sub(x, y):
    return x - y # x is subtracted by y

def Multiply(x, y):
    return x * y # x is multiplied by y

def Divide(x, y):
    return x / y # x is divided by y

print("Select a function:\n")
print("1.Add\n")
print("2.Sub\n")
print("3.Multiply\n")
print("4.Divide\n") 

user_input = input("Choice:") # user chooses function

while user_input != ("1","2","3","4"):
    print("Please enter 1, 2, 3 or 4!")
    user_input = input("Choice:")

num1 = float(input("Enter first number:")) # user unputs number
num2 = float(input("Enter second number:")) # user inputs second number

if user_input == '1':
    print(num1, "+", num2, "=", Add(num1,num2))

if user_input == '2':
    print(num1, "-", num2, "=", Sub(num1,num2))

if user_input == '3':
    print(num1, "*", num2, "=", Multiply(num1,num2))

if user_input == '4':
    print(num1, "/", num2, "=", Divide(num1,num2))

time.sleep(5) # sleeps for 5 seconds before ending

1 个答案:

答案 0 :(得分:0)

因此,您尝试将单个值与列表进行比较,而您真正想要的是检查user_input是否不在预期值列表中。尝试这样做(注意不在),

while user_input not in ("1","2","3","4"):
    print("Please enter 1, 2, 3 or 4!")
    user_input = input("Choice:")