क्या 0 और 1 के बीच 0.1 से कदम रखने का एक तरीका है?
मैंने सोचा कि मैं इसे निम्न की तरह कर सकता हूं, लेकिन यह विफल रहा:
for i in range(0, 1, 0.1):
print i
इसके बजाय, यह कहता है कि चरण तर्क शून्य नहीं हो सकता है, जिसकी मुझे उम्मीद नहीं थी।
itertools.takewhileऔर itertools.count। यह drangeप्रदर्शन-वार से बेहतर नहीं है , हालांकि।
seqGNU कोरुटिल्स में उपकरण एक को 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) लागू किया जा सकता है , हालांकि मैंने यह परीक्षण नहीं किया है कि कौन अधिक कुशल है