C'è un modo per passare da 0 a 1 di 0,1?
Pensavo di poterlo fare come segue, ma non è riuscito:
for i in range(0, 1, 0.1):
print i
Invece, dice che l'argomento passo non può essere zero, cosa che non mi aspettavo.
itertools.takewhile
e itertools.count
. drange
Tuttavia, non è meglio delle prestazioni.
seq
strumento nei coreutils GNU permette di fare a seq 0 0.1 1
meno degli errori di arrotondamento!
seq
utilizza long double
internamente il tipo C ed è soggetto ad errori di arrotondamento. Ad esempio sulla mia macchina, seq 0 0.1 1
fornisce 1
come ultimo output (come previsto), ma seq 1 0.1 2
fornisce 1.9
come ultimo output (anziché previsto 2
).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))
o itertools.islice(itertools.count(0,0.1), 10)
(dopo averlo fatto import itertools
), anche se non ho testato quale sia più efficiente