Уведомления

Группа в Telegram: @pythonsu

#1 Май 1, 2011 17:25:57

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

range() для значений с точкой

Насколько можно судить и из документов, и из отработки скриптов, range и xrange не работают с дробными значениями. Может быть все же есть уже готовая функция под задачу генерации последовательности, так же как range(), но для дробных



Отредактировано (Май 1, 2011 17:41:13)

Офлайн

#2 Май 1, 2011 19:47:56

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

range() для значений с точкой

def myrange(stop_at, start_at=0, step=1):
val = start_at
while val < stop_at:
yield val
val+=step

for f in myrange(1,step=0.1):
print(f)



Офлайн

#3 Май 1, 2011 19:59:47

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

range() для значений с точкой

За нее конечно спасибо,примерно так и мыслил, посто интересног было узнать нет ли стандартного решения.Как видно нет, интересно почему?



Офлайн

#4 Май 1, 2011 20:34:45

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

range() для значений с точкой

Эти float — они такие странные…

>>> def g(start, stop, step):
... while stop <= start:
... yield start
... start += step
>>> list(g(0.4, 0., -0.1))
0: [0.4,
0.30000000000000004,
0.20000000000000004,
0.10000000000000003,
2.7755575615628914e-17]
>>> list(range(4, 0, -1))
1: [4, 3, 2, 1]
>>>
На эффекте квантования можно получить и более занятные результаты.



Офлайн

#5 Май 1, 2011 21:49:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

range() для значений с точкой

Что касается готового то есть numpy.arange, numpy.linspace, numpy.logspace



Офлайн

#6 Май 1, 2011 23:25:47

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

range() для значений с точкой

Спасибо за уточнение



Офлайн

#7 Май 2, 2011 17:31:03

pavelr
От:
Зарегистрирован: 2011-04-22
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

range() для значений с точкой

Вот так можно:
t=
>>> t



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version