СПРОСИ ПРОФИ
👍
0
👎 02

Я хочу сделать цикл в калькуляторе до того как пользователь напишет да или же Y но выдаёт ошибку, как это исправить?

n = 'Y'
while True:
num1 = int (input('Введите первое число: '))
num2 = int (input('Введите второе число: '))
v = int(input('Напиши, какую операцию ты хочешь сделать? \n 1.Сложение \n 2.Вычитание \n 3.Деление \n 4.Умножение \n 5.Возвести в степень \n 6.Деление с остатком \n'))
if v == 1:
a = num1 + num2
f = 'сложение'
if v == 2:
a = num1 — num2
f = 'вычитание'
if v == 3:
a = num1 // num2
f = 'деление'
if v == 4:
a = num1 * num2
f = 'умножение'
if v == 5:
a = num1 ** num2
f = 'число в степени'
if v == 6:
a = num1 % num2
f = 'деление с остатком'
print('Продолжим? Y/N')
while n == 'N' or n == 'n':
break
else:
print('Результат', f, '=', a)

👍
0
👎 0

Простая вставка здесь не работает – разметка отступами потеряна и в коде не разобраться.
Где кончается цикл while?
Значение переменной 'n' после первой строки нигде не меняется, тогда какой смысл в условиях нижнего while?
И какая ошибка выдаётся?

👍
0
👎 0

1. по-хорошему надо в начале инициализировать переменные a, и f
f = ''
a = 0
2. Цикл переоформить с
while True:
на
while n != 'N' and n != 'n':
это условие будет проверять не равно ли n латинской 'n' или 'N' и если равно, то прерывать исполнение программы.
3. этот кусок переписать
print('Продолжим? Y/N')
while n == 'N' or n == 'n':
break
else:
print('Результат', f, '=', a)

на

print('Результат', f, '=', a)
n = input('Продолжим? Y/N ')
в этом месте мы спрашиваем продолжить или нет и ответ записываем в переменную n.

таким образом ваша программа приобретает следующий вид:

https://www.pythonmorsels.com/p/2myhs/

Задайте свой вопрос программистам –
профессионалам

Сейчас онлайн 75 программистов
Получите ответ профи быстро и бесплатно
ASK.PROFI.RU © 2020-2024