«Проблема со ссылкой на вариант». Проблемы с основным кодом калькулятора

#python

Вопрос:

Я довольно новичок в python. Я не могу понять, в чем на самом деле проблема. Я кодирую базовый калькулятор, который запрашивает два ввода: «первое число» и «второе число». Затем выводится пронумерованный список опций. Затем пользователь выбирает одно число из 1-4. На основе этого и входных данных выполняется расчет. После этого я хочу спросить пользователя, хотят ли они продолжить дальнейшую операцию (цикл), но именно тогда цикл прерывается. Итак, я хочу, чтобы код вернулся к циклу while после его разрыва. Таким образом, если нажать 6, он вернется к циклу while. Если 7, введите код выхода.

 print("Hello, welcome to my calculator")
firstnum = int(input("Enter your first number"))
secondnum = int(input("Enter your second number"))
def loop(

        while True:
                Options = int(input('''
                       1 is Addition
                       2 is Subtraction
                       3 is Multiplication
                       4 is Division
        
                           '''))
                if Options ==1:
                        print("The total is", firstnum   secondnum)
                elif Options ==2:
                        print("The total is", firstnum - secondnum)
                elif Options ==3:
                        print("The total is", firstnum*secondnum)
                elif Options ==4:
                        print("The total is", firstnum/secondnum)

                break

print("Would you like to continue?")
ask = int(input('''
        6 for Yes
        7 for No
                '''))
if ask ==6:
                continue

elif ask ==7:
        exit
 

Комментарии:

1. Вы пропускаете список параметров в def loop строке.

2. Пожалуйста, последовательно используйте 4 места в качестве отступа.

3. Вы также никогда не вызываете loop() функцию.

4. Дайте нам знать, что пошло не так. Когда я запускаю его, я получаю синтаксическую ошибку. Если это то, что вы видите, так и скажите — и включите сообщение обратной трассировки, чтобы информация была здесь в запросе. И, exit это функция. Вам нужно будет это сделать exit() (или включить код выхода, например, exit(2) ).

Ответ №1:

continue работает только внутри while цикла, поэтому попробуйте переместить его туда:

 print("Hello, welcome to my calculator")
firstnum = int(input("Enter your first number"))
secondnum = int(input("Enter your second number"))


while True:
    Options = int(input('''
                       1 is Addition
                       2 is Subtraction
                       3 is Multiplication
                       4 is Division

                           '''))
    if Options == 1:
        print("The total is", firstnum   secondnum)
    elif Options == 2:
        print("The total is", firstnum - secondnum)
    elif Options == 3:
        print("The total is", firstnum * secondnum)
    elif Options == 4:
        print("The total is", firstnum / secondnum)

    print("Would you like to continue?")
    ask = int(input('''
                                6 for Yes
                                7 for No
                                '''))
    if ask == 6:
        continue

    elif ask == 7:
        break

    else:
        raise ValueError(str(ask))

 

Комментарии:

1. Спасибо! Это так помогло

Ответ №2:

Вы никогда не вызывали функцию цикла, и синтаксис функции цикла не является правильным,

Обновите код следующим образом,

 print("Hello, welcome to my calculator")
firstnum = int(input("Enter your first number"))
secondnum = int(input("Enter your second number"))
value=True
while (value):
        opt = int(input('''
                       1 is Addition
                       2 is Subtraction
                       3 is Multiplication
                       4 is Division
        
                           '''))
        if opt ==1:
            print("The total is", firstnum   secondnum)
        elif opt ==2:
            print("The total is", firstnum - secondnum)
        elif opt ==3:
            print("The total is", firstnum*secondnum)
        elif opt ==4:
            print("The total is", firstnum/secondnum)
                   
        print("Would you like to continue?")
        ask = int(input('''6 for Yes 7 for No'''))
        if ask ==6:
            continue
        elif ask ==7:
            break
        else:
            print("Wrong Input! Shutting Down")
            break
 

Value=true является не чем иным, как истинным условием для while бесконечного выполнения цикла на основе внутренних условий в ваших контрольных блоках if и elif

Не используйте оператор break после elif использования его в условии выхода (ask=7) для выхода из цикла и остановки программы

Также сохраняйте согласованность отступов в коде.

Комментарии:

1. Понял. Спасибо за объяснение и ответ.