Python 一个简单的计算器。我不想在用户键入1-4以外的数字后显示错误消息。它在一个while循环中

Python 一个简单的计算器。我不想在用户键入1-4以外的数字后显示错误消息。它在一个while循环中,python,python-3.x,calculator,Python,Python 3.x,Calculator,如果用户键入的数字5不在程序中,我想显示一个错误。请帮我解决这个问题。我也想试试这些 如果用户再次键入数字1、2、3或4,则显示错误 我还想显示一个错误,如果用户键入任何其他内容,例如字母 def add(num1, num2): return num1 + num2 def sub(num1, num2): return num1 - num2 def mult(num1, num2): return num1 * num2

如果用户键入的数字5不在程序中,我想显示一个错误。请帮我解决这个问题。我也想试试这些 如果用户再次键入数字1、2、3或4,则显示错误 我还想显示一个错误,如果用户键入任何其他内容,例如字母

 def add(num1, num2):
        return num1 + num2
    def sub(num1, num2):
        return num1 - num2
    def mult(num1, num2):
        return num1 * num2
    def div(num1, num2):
        return num1 / num2
    print("""
    Choose Operation:
    1. Addition
    2. Subtraction
    3. Division
    4. Multiplication
            """
            )
    while True:
        sct = int(input("Enter 1,2,3, or 4"))
        number_a = int(input("Please enter first number"))
        number_b = int(input("Please enter second number"))
        if sct == 1:
            print(number_a, "+", number_b, "=", add(number_a, number_b))
        elif sct == 4:
            print(number_a, "X", number_b, "=", mult(number_a, number_b))
        elif sct == 3:
            print(number_a, "/", number_b, div(number_a, number_b))
        elif sct == 2:
            print(number_a, "-", number_b, sub(number_a, number_b))
        else:
            print("error")

我会这样做:

correct_choices = ['1', '2', '3', '4']
user_choice = 'wrong'
prompt = """
Choose Operation:
1. Addition
2. Subtraction
3. Division
4. Multiplication
: """
while user_choice not in correct_choices :
    user_choice = input (prompt)

如果他们键入5,我不确定您所说的错误是什么意思,因为它已经这样做了,但下面是您可以再次键入数字的方法:

在开始处定义一个列表:

ns_done = []
然后,每次有人选择一个号码时,将其添加到列表中:

sct=int(输入(“输入1、2、3或4”))
如果ns_done包含sct:
打印(“错误123”)
持续
然后,如果没有,请将号码添加到列表中:

ns_done.append(sct)

此代码是否还未达到您的要求
else:print(“error”)
似乎合理。当我键入5时,不会显示任何错误,并且会重新开始添加过程。打印(“错误”)未显示。文章中代码的缩进似乎已关闭,我已尝试修复它。您能检查它是否与您在计算机上运行的内容相匹配吗?对不起,它不工作。@mkrieger1,由于OP的原始代码也是关闭的,这是不可复制的。但在帮助更正问题时,通常不建议触摸代码区域。谢谢您的帮助。我刚开始学习Python。但我很难理解这一点。