¿Hay alguna manera de pasar de 0 a 1 por 0.1?
Pensé que podría hacerlo de la siguiente manera, pero falló:
for i in range(0, 1, 0.1):
print i
En cambio, dice que el argumento paso no puede ser cero, lo cual no esperaba.
itertools.takewhiley itertools.count. Sin drangeembargo, no es mejor que el rendimiento.
seqherramienta en GNU coreutils le permite a uno hacerlo seq 0 0.1 1sin errores de redondeo!
sequtiliza el long doubletipo C internamente y está sujeto a errores de redondeo. Por ejemplo, en mi máquina, seq 0 0.1 1da 1como su última salida (como se esperaba), pero seq 1 0.1 2da 1.9como la última salida (en lugar de la esperada 2).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))o itertools.islice(itertools.count(0,0.1), 10)(después de que lo haya hecho import itertools), aunque no he probado cuál es más eficiente