Lisadm
@Lisadm
В начале пути.

Где ошибка в коде на python?

Пока задаю данные напрямую в переменной все работает. Но если считываю тоже самое с файла выдает ошибку:
Traceback (most recent call last):
  File "C:\Users\u74\Desktop\Новая папка\rasshifr2.py", line 32, in <module>
    re += s*int(pi)
ValueError: invalid literal for int() with base 10: ''

Данные в файле
A18Q12X19E12P18f8J15f15H8o2v19J18I11h16P13K8L7X13Q18e10m5e6s11U6p13X10
with open("dataset_3363_2.txt", "r") as her:
	s1 = her.readline()
d = len(s1)
j = 0
v = 0
b = 0
pi = str('')
s = str('')
re = str('')
while v<d:
    while b < 2 and v < d:
        for g in range(10):
            if s1[j] == str(g):
                pi += str(s1[j])
                b+=1
                v+=1
                j+=1
                break
        else:
            if b != 1:
                s+=s1[j]
                v+=1
                j+=1
            else:
                y = 0
                re += s*int(pi)
                b = 0
                pi = str('')
                s = str('')
    else:
        y = 0
        re += s*int(pi)
        b = 0
        pi = str('')
        s = str('')
print(re)
  • Вопрос задан
  • 468 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Drill
s1 = her.readline().strip()
Ответ написан
Комментировать
@Kenit
Если я правильно понял то ошибка в том что в pi пустая строка. И ошибка потому что не удаётся преобразовать пустую строку в целочисленное значение.
А получается такое потому что "break" отменяет выполнение else блока. То есть первый else блок выполняется если мы не получаем значение pi в цикле, а по умолчанию pi = " ".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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