क्या 0 और 1 के बीच 0.1 से कदम रखने का एक तरीका है?
मैंने सोचा कि मैं इसे निम्न की तरह कर सकता हूं, लेकिन यह विफल रहा:
for i in range(0, 1, 0.1):
print i
इसके बजाय, यह कहता है कि चरण तर्क शून्य नहीं हो सकता है, जिसकी मुझे उम्मीद नहीं थी।
itertools.takewhile
और itertools.count
। यह drange
प्रदर्शन-वार से बेहतर नहीं है , हालांकि।
seq
GNU कोरुटिल्स में उपकरण एक को seq 0 0.1 1
बिना गोल त्रुटियों के करने की अनुमति देता है !
seq
सी का उपयोग करता है long double
प्रकार आंतरिक रूप से, और है गोलाई त्रुटियों के अधीन है। मेरी मशीन पर उदाहरण के लिए, seq 0 0.1 1
देता है 1
(उम्मीद के रूप में) अपने पिछले आउटपुट के रूप में है, लेकिन seq 1 0.1 2
देता है 1.9
पिछले आउटपुट के रूप में (बजाय उम्मीद 2
)।
itertools.takewhile(lambda x: (x+0.05)<1, itertools.count(0,0.1))
या itertools.islice(itertools.count(0,0.1), 10)
आपके पास होने के बाद import itertools
) लागू किया जा सकता है , हालांकि मैंने यह परीक्षण नहीं किया है कि कौन अधिक कुशल है