में 'लूप' लूप व्यवहार लूप के अंत में निम्नलिखित सरल पाश i
के मूल्य को क्यों नहीं बचा रहा है?पाइथन
for i in range(1, 10):
print i
i = i + 3
ऊपर प्रिंट:
1
2
3
4
5
6
7
8
9
लेकिन इसे प्रिंट करना चाहिए:
1
4
7
में 'लूप' लूप व्यवहार लूप के अंत में निम्नलिखित सरल पाश i
के मूल्य को क्यों नहीं बचा रहा है?पाइथन
for i in range(1, 10):
print i
i = i + 3
ऊपर प्रिंट:
1
2
3
4
5
6
7
8
9
लेकिन इसे प्रिंट करना चाहिए:
1
4
7
for
सेटi
प्रत्येक यात्रा, वस्तु से अगले मूल्य के लिए खत्म हो दोहराया जा रहा है। जो भी आप लूप में i
सेट करते हैं उस बिंदु पर अनदेखा किया जाता है।
for
statement documentation से:
सूट तो आरोही सूचकांक के क्रम में, इटरेटर द्वारा प्रदान की प्रत्येक आइटम के लिए एक बार निष्पादित कर रहा है। बदले में प्रत्येक आइटम को असाइनमेंट के मानक नियमों का उपयोग करके लक्ष्य सूची में असाइन किया जाता है, और फिर सूट निष्पादित किया जाता है।
i
यहाँ लक्ष्य सूची है, इसलिए यह range(1, 10)
वस्तु से प्रत्येक मान असाइन किया गया है। i
को बाद में किसी अन्य चीज़ पर सेट करने से range(1, 10)
अभिव्यक्ति उत्पन्न नहीं होती है।
यदि आप एक लूप बनाना चाहते हैं जहां आप i
बदलते हैं, तो while
लूप का उपयोग करें; यह हालत के माध्यम से हर बार फिर से परीक्षण:
i = 1
while i < 10:
print i
i += 3
लेकिन यह सिर्फ एक कदम के साथ एक range()
उपयोग करने के लिए, सामने मूल्यों उत्पादन आसान होगा:
for i in range(1, 10, 3):
print i
और मैं यह कैसे नहीं कर सकता? –
@ निशांतसिंह आप अपनी 'सीमा (1,10,3) ' – Ian
में कदम को नियंत्रित कर सकते हैं अच्छा जवाब! यहां मुख्य बिंदु यह है कि कोई परीक्षण नहीं चल रहा है। पाइथन में लूप के लिए अन्य भाषाओं के लूप के लिए 'डू-टेस्ट-दोहराना' की बजाय एक वास्तविक लूप, एक पुनरावृत्ति है। जावा में, मुझे लगता है, प्रत्येक 'लूप के लिए' है, जो कि अजगर पाश के समान है; शायद इस तरह के नामकरण से यह थोड़ा और स्पष्ट हो जाता है कि वह लूप कैसे व्यवहार करता है, है ना? –
संभवतः [संबंधित स्पष्टीकरण ] (http://stackoverflow.com/questions/35618307/how-to-transform-string-into-dict/35618686#35618686)। – Ian
वह उस तरह से क्यों काम करेगा? यह पूरी तरह से अंतर्ज्ञानी है। – Andrey
आपका चर "मुद्रित" में सेट किया जा रहा है, मुद्रित है और फिर आप अतिरिक्त करते हैं। यदि आप उस आउटपुट को चाहते हैं तो आपको "प्रिंट i + 3" – miguels