Gibt es eine Möglichkeit, um 0,1 zwischen 0 und 1 zu wechseln?
Ich dachte, ich könnte es wie folgt machen, aber es schlug fehl:
for i in range(0, 1, 0.1):
print i
Stattdessen heißt es, dass das Schrittargument nicht Null sein kann, was ich nicht erwartet hatte.
itertools.takewhileund aufgerollt werden itertools.count. Es ist jedoch nicht besser als die drangeLeistung.
seqTool in GNU Coreutils kann man auf seq 0 0.1 1Rundungsfehler verzichten!
seqverwendet den C - long doubleTypen intern und ist Gegenstand von Rundungsfehlern. Zum Beispiel auf meiner Maschine, seq 0 0.1 1gibt 1als letzte Ausgabe (wie erwartet), sondern seq 1 0.1 2gibt 1.9als letzte Ausgabe ( und nicht den erwarteten 2).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))oder itertools.islice(itertools.count(0,0.1), 10)(nachdem Sie dies getan haben import itertools) implementiert werden , obwohl ich nicht getestet habe, was effizienter ist