gnom
Сен. 20, 2010 15:46:03
надо введеное число разбить на элементы
вот мой код:
#!/usr/bin/python
# -*- coding: utf-8 -*-
a = int(input("Введите, пожалуйста, целое число: "))
b = list(a)
print list(a)
где тут ошибка?
grok
Сен. 20, 2010 16:19:11
Так делай:
#!/usr/bin/python
# -*- coding: utf-8 -*-
a = int(input("Введите, пожалуйста, целое число: "))
b = list(str(a))
print (b)
Учти, работать потом с элементами списка, как с числами, ты не сможешь…
maxwell
Сен. 20, 2010 16:57:09
#!/usr/bin/python
# -*- coding: utf-8 -*-
num = int(input("Введите, пожалуйста, целое число: "))
l = []
while num:
num, d = divmod(num, 10)
l.append(d)
print l
Смысл прост — смотрим остаток от деления на 10 => сохраняем в массив, и само число делим (целочисленно) на 10, чтобы «убрать» младший разряд
Только, num будет потерян.
imaksimus
Сен. 20, 2010 19:44:52
а разве input не возвращает фактическое значение? зачем int(input())?
и разве не проще сделать for item in str(num): l.append(item)?
да и тогда проще сразу не input() юзать, а raw_input(), который как раз строку возвращает
maxwell
Сен. 20, 2010 20:51:04
imaksimus, проще строкой, но иногда в задачах явно говорят — все данные хранить в интах.
Во всяком случае, если использовать строки, то смысл и так несложной задачи теряется напрочь.
imaksimus
Сен. 21, 2010 12:27:47
ну так input() вернет вам число, если введено число, а вы его еще зачем-то int-ом оборачиваете
maxwell
Сен. 21, 2010 13:14:37
imaksimus, копи-паст зло, на самом деле я ни разу не работал с вводом/выводом с клавиатуры в питоне. :-)
cutwater
Сен. 21, 2010 15:20:47
собственно input зло в 2.x python. НЕ используйте его. необходимо использовать raw_input. Вернет строку.
В 3.x raw_input переименован в input