Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2010 15:46:03

gnom
От:
Зарегистрирован: 2010-09-07
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

надо введеное число разбить на элементы
вот мой код:

#!/usr/bin/python
# -*- coding: utf-8 -*-
a = int(input("Введите, пожалуйста, целое число: "))
b = list(a)
print list(a)
где тут ошибка?



Офлайн

#2 Сен. 20, 2010 16:19:11

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

Так делай:

#!/usr/bin/python
# -*- coding: utf-8 -*-
a = int(input("Введите, пожалуйста, целое число: "))
b = list(str(a))
print (b)
Учти, работать потом с элементами списка, как с числами, ты не сможешь…



Отредактировано (Сен. 20, 2010 16:24:28)

Офлайн

#3 Сен. 20, 2010 16:57:09

maxwell
От:
Зарегистрирован: 2008-08-26
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

#!/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 будет потерян.



Офлайн

#4 Сен. 20, 2010 19:44:52

imaksimus
От:
Зарегистрирован: 2010-09-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

а разве input не возвращает фактическое значение? зачем int(input())?
и разве не проще сделать for item in str(num): l.append(item)?
да и тогда проще сразу не input() юзать, а raw_input(), который как раз строку возвращает



Офлайн

#5 Сен. 20, 2010 20:51:04

maxwell
От:
Зарегистрирован: 2008-08-26
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

imaksimus, проще строкой, но иногда в задачах явно говорят — все данные хранить в интах.
Во всяком случае, если использовать строки, то смысл и так несложной задачи теряется напрочь.



Офлайн

#6 Сен. 21, 2010 12:27:47

imaksimus
От:
Зарегистрирован: 2010-09-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

ну так input() вернет вам число, если введено число, а вы его еще зачем-то int-ом оборачиваете



Офлайн

#7 Сен. 21, 2010 13:14:37

maxwell
От:
Зарегистрирован: 2008-08-26
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

в чем ошибка?

imaksimus, копи-паст зло, на самом деле я ни разу не работал с вводом/выводом с клавиатуры в питоне. :-)



Офлайн

#8 Сен. 21, 2010 15:20:47

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

в чем ошибка?

собственно input зло в 2.x python. НЕ используйте его. необходимо использовать raw_input. Вернет строку.
В 3.x raw_input переименован в input



Отредактировано (Сен. 21, 2010 15:21:55)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version