0 ile 1 arasında 0,1 adım atmanın bir yolu var mı?
Bunu aşağıdaki gibi yapabileceğimi düşündüm, ancak başarısız oldu:
for i in range(0, 1, 0.1):
print i
Bunun yerine, adım argümanının sıfır olamayacağını, ki beklemediğimi söylüyor.
itertools.takewhile
ve ve kullanılarak sarılabilir itertools.count
. Yine de drange
performans açısından daha iyi değil .
seq
GNU coreutils'deki araç bile, seq 0 0.1 1
yuvarlama hataları olmadan yapmanıza izin verir !
seq
C kullanır long double
içten türü ve olduğunu yuvarlama hataları tabi. Benim makinede Örneğin, seq 0 0.1 1
verir 1
(beklendiği gibi) onun son çıkış olarak değil seq 1 0.1 2
verir 1.9
(beklenen ziyade son çıkış olarak 2
).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))
veya uygulanabilir , ancak daha verimli olanı test etmedimitertools.islice(itertools.count(0,0.1), 10)
import itertools