पायथन के पास for
लूप में स्वचालित रूप से काउंटर वैरिएबल उत्पन्न करने का एक शानदार तरीका है: enumerate
फ़ंक्शन। यह काउंटर वैरिएबल को आरंभ करने और बढ़ाने की आवश्यकता को बचाता है। काउंटर वैरिएबल भी बदसूरत हैं क्योंकि लूप समाप्त होने के बाद वे अक्सर बेकार होते हैं, फिर भी उनका दायरा लूप का दायरा नहीं है, इसलिए वे बिना किसी आवश्यकता के नेमस्पेस पर कब्जा करते हैं (हालांकि मुझे यकीन नहीं है कि enumerate
वास्तव में यह हल करता है)।पाशोनिक गणना जबकि लूप
मेरा सवाल यह है कि क्या while
loops के लिए एक समान पायथनिक समाधान है या नहीं। enumerate
while
लूप के लिए काम नहीं करेगा क्योंकि enumerate
एक पुनरावर्तक देता है। आदर्श रूप में, समाधान "पायथनिक" होना चाहिए और फ़ंक्शन परिभाषाओं की आवश्यकता नहीं है।
उदाहरण के लिए:
x=0
c=0
while x<10:
x=int(raw_input())
print x,c
c+=1
इस मामले हम आरंभ और c
बढ़ाने से बचने के लिए चाहते हो जाएगा में।
स्पष्टीकरण:
यह मैनुअल समाप्ति के साथ एक अंतहीन for
पाश के साथ किया जा सकता है के रूप में कुछ सुझाव दिया है, लेकिन मैं एक समाधान है कि कोड साफ बनाता रहा हूँ, और मुझे नहीं लगता कि उस समाधान इस मामले में कोड स्पष्ट बनाता है।
क्या आप एक उदाहरण दे सकते हैं? आपको थोड़ी देर लूप का उपयोग क्यों करना चाहिए? – BrenBarn
क्या आप कुछ ऐसा ढूंढ रहे हैं [itertools.count?] (Http://docs.python.org/2.7/library/itertools.html#itertools.count) –
क्या आपका मतलब है (i <100) {i ++} दया लूप का? – Darek