Простой калькулятор. Я не хочу показывать сообщение об ошибке после того, как пользователь наберет номер, отличный от 1-4. Это в цикле while - PullRequest
0 голосов
/ 07 мая 2020

Я хочу показать ошибку, если пользователь вводит число 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")

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Вот как я бы go об этом:

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)
0 голосов
/ 07 мая 2020

Я не уверен, что вы подразумеваете под ошибкой, если они набирают 5, поскольку он уже делает это, но вот что вы можете сделать, чтобы снова ввести число:

Определите список в начале:

ns_done = []

Затем добавляйте в список каждый раз, когда кто-то выбирает номер:

sct = int(input("Enter 1,2,3, or 4"))
if ns_done contains sct:
    print("error 123")
    continue

Затем добавьте номер в список, если нет:

ns_done.append(sct)
...