Чи є спосіб перейти між 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), хоча я не перевіряв, що є більш ефективним