Existe-t-il un moyen de passer de 0 à 1 de 0,1?
Je pensais que je pouvais le faire comme suit, mais cela a échoué:
for i in range(0, 1, 0.1):
print i
Au lieu de cela, il dit que l'argument step ne peut pas être nul, ce à quoi je ne m'attendais pas.
itertools.takewhile
et itertools.count
. Ce n'est pas mieux que pour les drange
performances.
seq
outil dans GNU coreutils permet de se passer des seq 0 0.1 1
erreurs d'arrondi!
seq
utilise le long double
type C en interne et est sujet aux erreurs d'arrondi. Par exemple sur ma machine, seq 0 0.1 1
donne 1
comme dernière sortie (comme prévu), mais seq 1 0.1 2
donne 1.9
comme dernière sortie (plutôt que prévu 2
).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))
ou itertools.islice(itertools.count(0,0.1), 10)
(après vous l'avez import itertools
), bien que je n'ai pas testé ce qui est plus efficace