Неверный литерал для int с основанием 10: '' - PullRequest
3 голосов
/ 19 декабря 2010
>>> n = ''.join(i for i in x if i.isdigit())
>>> n.isdigit()
True
>>> x.isdigit()
False

>>> previous = 0
>>> next = 100
>>> answer = 0


>>> for i in range(0,100):
...     answer += int(n[previous:next])
...     previous = next
...     next += 100
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ValueError: invalid literal for int() with base 10: ''

Почему я получаю эту ошибку?Как вы можете видеть, n это цифра ..

1 Ответ

7 голосов
/ 19 декабря 2010

n может быть числовым, но на каком-то этапе вы превышаете длину n, так что n[previous:next] вообще не содержит символов. Пустая строка '' не может быть преобразована в int, поэтому ошибка, которая рассказывает всю историю: invalid literal for int() with base 10: ''.

>>> int('')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
...