Есть ли способ перейти между 0 и 1 на 0,1?
Я думал, что смогу сделать это следующим образом, но это не удалось:
for i in range(0, 1, 0.1):
print i
Вместо этого он говорит, что аргумент шага не может быть нулем, чего я не ожидал.
itertools.takewhileи itertools.count. Это не лучше, чем drangeс точки зрения производительности.
seqинструмент в GNU coreutils позволяет обходиться seq 0 0.1 1без ошибок округления!
seqиспользует C long doubleтип внутренне, и это с учетом ошибок округления. Например, на моей машине, seq 0 0.1 1дает 1как последний вывод (как и ожидалось), но seq 1 0.1 2дает 1.9как последний вывод (а не ожидаемый 2).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))или itertools.islice(itertools.count(0,0.1), 10)(после того, как вы это сделали import itertools), хотя я не проверял, что является более эффективным