Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 27, 2014 15:11:07

qwelip
Зарегистрирован: 2014-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Range, необычный список

Требуется построить список с 000 до 999. Таким образом, чтобы элементы начинались так 001, 002, 003 и тд, до 999. После сотни все идет как надо (3х значное число), вопрос как сделать, чтобы так же было и до сотни.

Офлайн

#2 Янв. 27, 2014 15:13:51

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Range, необычный список

Список чего? Строк?

Офлайн

#3 Янв. 27, 2014 15:17:57

qwelip
Зарегистрирован: 2014-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Range, необычный список

Список чего? Строк?
Чисел

Офлайн

#4 Янв. 27, 2014 15:22:09

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Range, необычный список

qwelip
Чисел
В таком случае, прошу просвятить меня, в чем же разница между 1 и 001 ?

Офлайн

#5 Янв. 27, 2014 15:25:11

qwelip
Зарегистрирован: 2014-01-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Range, необычный список


В таком случае, прошу просвятить меня, в чем же разница между 1 и 001 ?
Нужно чтобы список состоял именно таким образом, а так разницы нет.

Офлайн

#6 Янв. 27, 2014 15:26:18

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Range, необычный список

qwelip
Нужно чтобы список состоял именно таким образом
Зачем это нужно?

P.S.
>>> a = 001
>>> a
1

Отредактировано s0rg (Янв. 27, 2014 15:34:51)

Офлайн

#7 Янв. 27, 2014 16:01:18

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Range, необычный список

Ну можешь в тупую сделать так:

rrrr=[]
for a in xrange(0,999):
    if 10<a<100:
        rrrr.append("0"+str(a))
    elif a<10:
        rrrr.append("00"+str(a))
    elif a>=100:
        rrrr.append(a)
#Вот так потом вытаскивай значения (для примера!)
for m in list(rrrr):
    print (int(m))**2

Но как-то бессмысленно это

PS: а лучше как dimy44 ниже написал))))

Отредактировано noob_saibot (Янв. 27, 2014 16:09:19)

Офлайн

#8 Янв. 27, 2014 16:06:27

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Range, необычный список

строки наверняка, иначе смысла не имеет вопрос

lst = ['{0:03d}'.format(i) for i in range(1000)]
п.с. для питон 2 xrange надо, я для 3 привел

Отредактировано dimy44 (Янв. 27, 2014 16:10:45)

Офлайн

#9 Янв. 27, 2014 21:27:01

malya
От:
Зарегистрирован: 2012-01-11
Сообщения: 49
Репутация: +  1  -
Профиль   Отправить e-mail  

Range, необычный список

Ну можно хранить и список чисел, а при выводе форматировать так как нужно.



Офлайн

#10 Янв. 27, 2014 22:41:57

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Range, необычный список

qwelip
вам тут ловко намекают что числа 008 и 009 и т.п. быть не может, ибо приставка 0 перед числами указывает на восьмеричную систему исчисления. Делать то что не существуют может Российская Дума (полезная для государства и граждан действия), а Python нет.

>>> a=001
>>> a
1
>>> b=008
  File "<stdin>", line 1
    b=008
        ^
SyntaxError: invalid token
>>> b=010
>>> b
8
Поэтому нужно оперировать строками. Решение уже предложил dimy44.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version