Я хочу сделать цикл в калькуляторе но выдаёт ошибку, как это исправить? - вопрос №5096107
while n == 'Y' or n == 'y': 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') n = input() if n == 'y' or n == 'y': print ('Результат', f, '=', a) else: break
В строке if n == 'y' or n == 'y': вы проверяете, равняется ли n строке 'y', а затем снова проверяете, равняется ли n строке 'y'. Второе условие должно быть 'n'.
Вы не объявили переменную n до использования ее в цикле. Вы можете объявить ее в начале программы и присвоить ей значение 'Y', чтобы цикл начался.
Исправленный код:
python
n = 'Y'
while n == 'Y' or n == 'y':
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 = 'сложение'
elif v == 2:
a = num1 — num2
f = 'вычитание'
elif v == 3:
a = num1 // num2
f = 'деление'
elif v == 4:
a = num1 * num2
f = 'умножение'
elif v == 5:
a = num1 ** num2
f = 'число в степени'
elif v == 6:
a = num1 % num2
f = 'деление с остатком'
else:
print('Неверная операция')
continue
print('Результат', f, '=', a)
print('Продолжаем Y или нет N')
n = input()
if n == 'N' or n == 'n':
break
Этот код объявляет переменную n и устанавливает ее значение на 'Y'. Затем он повторяет блок кода в цикле while, пока n равно 'Y' или 'y'. Если пользователь вводит неверную операцию, программа сообщает об этом и начинает следующую итерацию цикла. Если пользователь вводит 'N' или 'n', программа прерывает цикл.
Добрый день. Меня заинтересовал ваш ответ "В вашем коде есть несколько ошибок:
В строке if n == 'y' or n == 'y': вы проверяете, равняется ли..." на вопрос http://www.liveexpert.org/topic/view/5096107-ya-hochu-sdelat-cikl-v-kalkulyatore-no-vidaet-oshibku-kak-eto-ispravit. Можно с вами обсудить этот ответ?