Ошибка значения: недопустимый литерал для int () с основанием 10: '' - PullRequest
0 голосов
/ 23 февраля 2012

Хорошо, ребята, я использую python, чтобы попытаться выполнить задачу.Короче говоря, мне нужно прочитать число из текстового файла, длина которого может составлять тысячи цифр.Я получаю эту ошибку, когда пытаюсь взять цифры из строки и привести их к целым числам, чтобы я мог с ними кое-что вычислить.

of = open("input.txt","r")
counter = 0
big=0
of.seek(0,0)

while True:    
    temp = of.read(5)
    if temp=="":
        break
    else:    
        a=int(temp[0])
        b=int(temp[1])
        c=int(temp[2])
        d=int(temp[3])
        e=int(temp[4])
        if a*b*c*d*e>big:
            big = a*b*c*d*e
        counter+=1
        of.seek(counter,0)

print big
of.close()

Я действительно застрял на этом, так что любая помощьвысоко ценится.

Спасибо заранее.

РЕДАКТИРОВАТЬ =============================================================

Немного повозившись, я наконец-то получил код для запускаправильно.Вот чем я закончил:

x = int(open("input.txt","r").read())
y = str(x)
big = 0
for i in range(0,len(y)-5):
    a = int(y[i])
    b = int(y[i+1])
    c = int(y[i+2])
    d = int(y[i+3])
    e = int(y[i+4])
    if a*b*c*d*e>big:
        big = a*b*c*d*e
print big

спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Ваш отступ неверен; if-else должен быть вложен в цикл while.

0 голосов
/ 23 февраля 2012

Python поддерживает длинные целые числа, поэтому, если файл представляет собой одно большое целое число, вы можете прочитать его так:

bignum=int(open("input.txt","r").read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...