Czy istnieje sposób na krok od 0 do 1 o 0,1?
Myślałem, że mogę to zrobić w następujący sposób, ale się nie udało:
for i in range(0, 1, 0.1):
print i
Zamiast tego mówi, że argument kroku nie może wynosić zero, czego się nie spodziewałem.
itertools.takewhilei itertools.count. Nie jest to jednak lepsze niż drangewydajność.
seqnarzędzie w jądrach GNU pozwala obejść się seq 0 0.1 1bez błędów zaokrąglania!
sequżywa C long doubletypu wewnętrznego i są podatne na błędy zaokrągleń. Na przykład na mojej maszynie seq 0 0.1 1daje 1jako ostatnie wyjście (zgodnie z oczekiwaniami), ale seq 1 0.1 2daje 1.9jako ostatnie wyjście (zamiast oczekiwanych 2).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))lub itertools.islice(itertools.count(0,0.1), 10)(jeśli masz import itertools), chociaż nie przetestowałem, która jest bardziej wydajna