неверная буквенная ошибка Python - PullRequest
1 голос
/ 16 марта 2011

поэтому у меня есть этот код

data = input()
m = data.split(',')

for i in range(0, len(m)):

    print(int(m[i]) )

но затем, когда я запускаю его и набираю "1,2,3", я получаю эту ошибку:

    print(int(m[i]))
ValueError: invalid literal for int() with base 10: '"1'

что я сделал не так?

с использованием Python 3

Ответы [ 4 ]

4 голосов
/ 16 марта 2011

Поскольку у вас есть код, вводимый вами текст должен быть числом, разделенным запятыми.Вам не нужно включать кавычки, просто введите 1,2,3 и ничего больше.Кавычки нужны только в том случае, если вы пишете реальный код для написания строковых литералов.В этом случае вы просто принимаете ввод, и он уже будет строкой.

Проблема в том, что вы печатаете буквально "1,2,3", и он пытается проанализировать первую строку int, "1, которая недопустима.

0 голосов
/ 08 апреля 2011

Ваш ввод для input:

"1,2,3"

подходит для Питона 2 input. Python 3 input похож на Python 2 raw_input, и весь его ввод уже считается строкой.

0 голосов
/ 16 марта 2011

Похоже, в вашем вводе есть дополнительный " символ. int() будет преобразовывать только строки, состоящие только из цифр в выбранной базе (база по умолчанию 10, поэтому она принимает [0-9]). Если в строке ввода появляются какие-либо другие символы, возникает эта ошибка.

0 голосов
/ 16 марта 2011

Кажется, вы набрали буквальные кавычки (") как часть ввода;int() не знает, как их разобрать.Сначала вам нужно удалить их:

data = input().strip('"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...