в программе есть одна проблема, честно, сам пытался пофиксить, но не получается. дело вот в чем: когда программа спрашивает в конце - хотите рестарт, если нажать 3 раза некорректное значение (ни Y ни N) то она завершается, это все хорошо, такое условие в задании есть. но если ввести 2 раза неверное, а на 3 раз написать Y (да рестарт) то она крашается. как исправить?
Код:
def is_digit(string):
if string.isdigit():
return True
else:
try:
float(string)
return True
except ValueError:
return False
flag = True
while flag:
flag_internal = True
while flag_internal:
num1 = input("Input first number: ")
if is_digit(num1) == False:
print("Incorrect input")
continue
break
while flag_internal:
num2 = input("Input second number: ")
if is_digit(num2) == False:
print("Incorrect input")
continue
break
while flag_internal:
op = input("Input operation: ")
if not (op == '+' or op == '-' or op == '*' or op == '/'):
print("Incorrect input")
continue
break
if op == '+':
print("Result: ", float(num1) + float(num2))
if op == '-':
print("Result: ", float(num1) - float(num2))
if op == '*':
print("Result: ", float(num1) * float(num2))
if op == '/':
print("Result: ", float(num1) / float(num2))
input_errors = 0
res = ''
while flag_internal:
res = input("Would you like to continue computing? (Y/N)")
if input_errors >= 2:
res = 'n'
break
if not (res.lower() == 'y' or res.lower() == 'n'):
print("Incorrect input")
input_errors += 1
continue
break
if res.lower() == 'y':
continue
if res.lower() == 'n':
break
Вложения
Последнее редактирование: