@AresMori

Не могу понять как убрать ошибку python?

Решал задачу, написал код, выводит ошибку out of range, не могу понять как решить данную проблему
текст задачи: создайте функцию, которая принимает строку и возвращает true или false в зависимости от того, является ли формула правильной или нет:
пример: 15*3=45 (выводит true)
51-10 = 4 (выводит false)

мой код:
text = input()
znak = '!'
string_number = ""
a1 = 0
a2 = 0
list = []
for i in range (len(text)):
    if text[i] == '+' or text[i] == '-' or text[i] == '*' or text[i] == '/':
        znak = text[i]    
    elif text[i].isdigit():
        if text[i+1].isdigit():
            string_number += text[i]
        else:
            if znak == '!':
                string_number += text[i]
                a1 = int(string_number)
            else:
                a2 = int(string_number)
                if znak == '+':
                    a1 += a2
                elif znak == '-':
                    a1 -= a2
                elif znak == '*':
                    a1 *= a2
                elif znak == '/':
                    a1 /= a2
    elif text[i] == '=':
        list.append(a1)
        print(a1)
        znak = '!'
list.append(a1)
print(a1)
flag = True
for i in range (len(list)):
    if list[i] != list[0]:
        flag = False
print(flag)


заранее спасибо за помощь
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@bbkmzzzz
Запихните код в тег code
if text[i+1].isdigit()  # на последнем элементе списка будет выкидывать исключение,
                      #так как берется индекс [последний элемент + 1], а это за границами списка
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы