Делаю задание, в котором нужно написать функцию, которая будет читать строки файла и выполнять их, а результаты складывать. Если выражение не корректное, пользователя спрашивают, нужно ли исправить строку? Если да, то вводится новая строка, если нет, то строка пропускается.
Не пойму, как сделать, чтобы при ошибочном вводе отображалась строка с новой ошибкой.
Кодtotal_sum = 0
def check_string(string):
try:
result = eval(string)
return result
except SyntaxError:
while True:
need_fix = input(f'Обнаружена ошибка в строке: {string}\tХотите исправить? ').lower()
if need_fix == 'да':
corrected_string = input('Введите исправленную строку: ')
result = check_string(corrected_string)
return result
elif need_fix == 'нет':
break
else:
print('Ответ не распознан, повторите ввод.')
continue
with open('calc.txt', 'r') as tasks:
for line in tasks:
task = line[:-1] if '\n' in line else line
task_result = check_string(task)
if not task_result:
continue
total_sum += task_result
print()
print(f'Сумма результатов: {total_sum}')
P.S. Буду благодарен за советы по оптимизации.