Форум сайта python.su
Здравствуйте, столкнулся с проблемой в следующем коде (Windows 7, Python 3.2):
string = input(“вводим числа”) - например 2011
for num in string:
number = int(num)
Если тестирую код из питоновской консоли то все хорошо, однако когда пытаюсь запустить скрипт из CMD - выдает ошибку
ValueError: invalid literal for int() with base 10: ‘\r’
Прочитал у вас на форуме что для винды нужна строчка, которая бы обрезала \r который добавляет Input
num = num.rstrip(“\r”)
Когда добавляю выдает ошибку:
ValueError: invalid literal for int() with base 10: ''
Помогите пожалуйста, не понимаю в чем проблема.
Офлайн
Проблема решена добавлением
string = string.rstrip()
string = string.lstrip()
string = string.strip()
Офлайн
Попробуйте перед циклом: string.strip('\r').
Вообще-то судя по описанию input должен сам стрипать newline… но не знаю до 3.* руки пока не дошли.
ЗЫ: Опоздал :)
Отредактировано (Июнь 24, 2011 23:16:58)
Офлайн
это оказывается бага такая:
http://bugs.python.org/issue11272
> On linux, python 3.2 -
>
>>>> x = input()
> xyz
>>>> len(x)
> 3
>>>> x
> ‘xyz’
>
> on windows, python 3.2 -
>
>>>> x = input()
> xyz
>>>> len(x)
> 4
>>>> x
> ‘xyz\r’
Отредактировано (Июнь 24, 2011 23:32:29)
Офлайн