вы не можете напрямую преобразовать список строк в числа с плавающей запятой.
Я не знаю, что, по вашему мнению, означает «список строк», но вы можете преобразовать строки в целые числа или с плавающей точкой согласно , выглядит ли текст в строке как действительное целое число или число с плавающей запятой . Строка типа "3"
преобразуется в целое число 3
или значение с плавающей запятой 3.0
; строка типа "apple"
не преобразуется ни во что numeri c, потому что не существует разумного значения numeri c для преобразования. Точно так же в вашем фактическом коде: вы не можете преобразовать " "
(одиночный пробел).
digits = [int(i) for i in digits]
Поскольку digits
раньше было строкой, это повторяет каждый символ из строка. Если вы хотите перебрать каждое слово , вам нужно сначала разбить его на слова. Если вы просто хотите пропустить пробелы, вам также нужно сделать это явно.
Но первое, что вам нужно сделать, это подумать о проблеме . Как именно может выглядеть ваш ввод? Что именно вы хотите получить в результате в списке?
Вы хотите использовать int
, а не float
, потому что вы собираетесь выполнять целочисленную арифметику c при реализации алгоритм.
Когда вы получаете сообщение об ошибке, в котором говорится, что что-то не может быть преобразовано во что-то другое, вам нужно подумать о проблеме . Ошибка связана с тем, что вы пытаетесь преобразовать в ? Или это из-за того, что вы пытаетесь преобразовать из ? Чтобы понять это, первым делом нужно проверить, из чего вы пытаетесь преобразовать, и посмотреть, имеет ли это смысл для того, что вы делаете.
В вашем коде много других логических ошибок. Например, if digits[0] == 3 and digits[1] == 7 or 4 :
не делает то, что вы хотите . На этом этапе вам будет лучше, если вы сначала следуете руководству, будьте более осторожны в целом и больше думая о проблеме , чем пытаясь получить помощь от Stack Overflow. Кроме того, пишите меньше кода за раз . Как только вы узнаете, каковы логические шаги для решения вашей проблемы, реализуйте каждый из них и сначала убедитесь, что он работает, , прежде чем продолжить. В вашем случае этот первый шаг - получение желаемого списка цифр.