Apakah ada cara untuk melangkah antara 0 dan 1 dengan 0,1?
Saya pikir saya bisa melakukannya seperti berikut, tetapi gagal:
for i in range(0, 1, 0.1):
print i
Sebaliknya, ia mengatakan bahwa argumen langkah tidak boleh nol, yang tidak saya harapkan.
itertools.takewhiledan itertools.count. Itu tidak lebih baik dari drangesegi kinerja.
seqalat dalam GNU coreutils memungkinkan seseorang untuk melakukannya seq 0 0.1 1tanpa kesalahan pembulatan!
seqmenggunakan C long doublejenis internal, dan adalah tunduk pada kesalahan pembulatan. Misalnya pada mesin saya, seq 0 0.1 1berikan 1sebagai output terakhir (seperti yang diharapkan), tetapi seq 1 0.1 2berikan 1.9sebagai output terakhir (bukan yang diharapkan 2).
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))atau itertools.islice(itertools.count(0,0.1), 10)(setelah Anda miliki import itertools), meskipun saya belum menguji mana yang lebih efisien