Найти - Пользователи
Полная версия: range() для значений с точкой
Начало » Python для новичков » range() для значений с точкой
1
guranvir
Насколько можно судить и из документов, и из отработки скриптов, range и xrange не работают с дробными значениями. Может быть все же есть уже готовая функция под задачу генерации последовательности, так же как range(), но для дробных
Studentik
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)
guranvir
За нее конечно спасибо,примерно так и мыслил, посто интересног было узнать нет ли стандартного решения.Как видно нет, интересно почему?
Андрей Светлов
Эти 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]
>>>
На эффекте квантования можно получить и более занятные результаты.
doza_and
Что касается готового то есть numpy.arange, numpy.linspace, numpy.logspace
guranvir
Спасибо за уточнение
pavelr
Вот так можно:
t=
>>> t
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB