#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. Понял. Спасибо за объяснение и ответ.