परिचय
<पी> फॉर लूप्स का उपयोग करना और जबकि लूप पायथन में आपको कार्यों को स्वचालित करने और कुशलतापूर्वक दोहराने की अनुमति मिलती है। ये लूप पायथन में मौलिक निर्माण हैं जो आपको सूचियों, टुपल्स और स्ट्रिंग्स जैसे अनुक्रमों पर पुनरावृत्त करने या किसी शर्त के आधार पर कोड के ब्लॉक को बार-बार निष्पादित करने में सक्षम बनाते हैं। <पी> हालाँकि, ऐसे परिदृश्य हैं जहाँ आपको अपने लूप के प्रवाह पर अधिक नियंत्रण की आवश्यकता होती है। उदाहरण के लिए, आपको ऐसी स्थिति का सामना करना पड़ सकता है जहां आपको समय से पहले लूप से बाहर निकलने, वर्तमान पुनरावृत्ति को छोड़ने, या बस भविष्य के कोड के लिए प्लेसहोल्डर रखने की आवश्यकता होती है। इन मामलों को संभालने के लिए पायथन तीन शक्तिशाली कथन प्रदान करता है:break , continue , और pass . - द
break स्टेटमेंट आपको एक विशिष्ट शर्त पूरी होने पर लूप से पूरी तरह बाहर निकलने की अनुमति देता है, जिससे लूप निष्पादन प्रभावी रूप से रुक जाता है।
- द
continue स्टेटमेंट आपको वर्तमान पुनरावृत्ति के लिए लूप के अंदर शेष कोड को छोड़ने और अगले पुनरावृत्ति पर जाने की सुविधा देता है।
- द
pass कथन एक शून्य संक्रिया है; इसका उपयोग लूप, फ़ंक्शंस, क्लास या कंडीशनल में प्लेसहोल्डर के रूप में किया जाता है जहां कोड को वाक्यविन्यास की आवश्यकता होती है लेकिन आपके पास निष्पादित करने के लिए कुछ भी नहीं होता है।
<पी> इन कथनों को समझना और उनका उपयोग करना लूप नियंत्रण प्रवाह को प्रबंधित करने की आपकी क्षमता को महत्वपूर्ण रूप से बढ़ा सकता है, जिससे आपका कोड अधिक कुशल और पढ़ने में आसान हो जाएगा। यह आलेख पायथन के break का उपयोग करने के लिए एक व्यापक मार्गदर्शिका प्रदान करता है , continue , और pass प्रवाह को प्रभावी ढंग से नियंत्रित करने के लिए लूप के भीतर कथन। यह व्यावहारिक कोड उदाहरणों और आउटपुट प्रदर्शनों के साथ प्रत्येक कथन के उद्देश्य और व्यवहार की व्याख्या करता है। लेख उन्नत लूप नियंत्रण तकनीकों का भी पता लगाता है, जिसमें बहु-स्तरीय लूप निकास के तरीके शामिल हैं, और कम-ज्ञात else का परिचय देता है। क्लीनर पोस्ट-लूप तर्क के लिए लूप के साथ क्लॉज। वास्तविक दुनिया के परिदृश्य जैसे डेटा पार्सिंग, फ़ाइल स्कैनिंग और मैट्रिक्स ट्रैवर्सल को यह दिखाने के लिए शामिल किया गया है कि ये अवधारणाएँ व्यावहारिक पायथन प्रोग्रामिंग में कैसे लागू होती हैं। <पी> क्या आपको एक पायथन परियोजना को तैनात करने और इसे शीघ्रता से चालू करने की आवश्यकता है? DigitalOcean ऐप प्लेटफ़ॉर्म देखें और मिनटों में सीधे GitHub से एक Python प्रोजेक्ट तैनात करें। मुख्य बातें
- द
break पायथन में स्टेटमेंट आपको एक विशिष्ट शर्त पूरी होने पर तुरंत लूप से बाहर निकलने की अनुमति देता है, जो खोज या सत्यापन कार्यों के दौरान जल्दी समाप्त करने के लिए विशेष रूप से उपयोगी है।
- द
continue स्टेटमेंट शेष वर्तमान पुनरावृत्ति को छोड़ देता है और लूप के अगले चक्र में चला जाता है, जिससे गहरी नेस्टेड शर्तों से बचने और लूप स्पष्टता में सुधार करने में मदद मिलती है।
- द
pass स्टेटमेंट एक सिंटैक्टिक प्लेसहोल्डर है जो कोई कार्रवाई नहीं करता है, आमतौर पर इसका उपयोग तब किया जाता है जब कोड के ब्लॉक को सिंटैक्टिक रूप से आवश्यक होता है लेकिन तर्क अभी तक लागू नहीं किया गया है।
- चूंकि पायथन के पास कई नेस्टेड लूपों को तोड़ने के लिए मूल समर्थन का अभाव है, इसलिए स्थिति को ट्रैक करने और बाहरी लूप व्यवहार को नियंत्रित करने के लिए फ़्लैग वेरिएबल का उपयोग करना एक व्यावहारिक समाधान है।
- किसी फ़ंक्शन में लूप लॉजिक को एनकैप्सुलेट करना और
return का उपयोग करना आपको पुनरावृत्ति के कई स्तरों से साफ़-साफ़ बाहर निकलने की अनुमति देता है और कोड मॉड्यूलरिटी और रखरखाव में सुधार करता है।
- हालांकि अपवादों का उपयोग नेस्टेड लूप से बाहर निकलने के लिए किया जा सकता है, उन्हें वास्तव में असाधारण स्थितियों के लिए आरक्षित किया जाना चाहिए और प्रदर्शन और पठनीयता संबंधी चिंताओं के कारण नियमित लूप नियंत्रण के लिए उन पर भरोसा नहीं किया जाना चाहिए।
- द
else for पर खंड और while लूप तभी निष्पादित होता है जब लूप break को हिट किए बिना सामान्य रूप से पूरा हो जाता है , जो इसे स्पष्ट और संक्षिप्त "नहीं मिला" तर्क को लागू करने के लिए आदर्श बनाता है।
आवश्यकताएँ
<पी> आपके कंप्यूटर या सर्वर पर Python 3 स्थापित होना चाहिए और एक प्रोग्रामिंग वातावरण होना चाहिए। यदि आपके पास प्रोग्रामिंग वातावरण सेट अप नहीं है, तो आप अपने ऑपरेटिंग सिस्टम (उबंटू, सेंटओएस, डेबियन इत्यादि) के लिए उपयुक्त अपने सर्वर पर स्थानीय पायथन प्रोग्रामिंग वातावरण स्थापित करने के लिए इंस्टॉलेशन और सेटअप गाइड का संदर्भ ले सकते हैं। ब्रेक स्टेटमेंट
<पी> पायथन में, break बाहरी स्थिति ट्रिगर होने पर स्टेटमेंट आपको लूप से बाहर निकलने की अनुमति देता है। आप break डालेंगे आपके लूप स्टेटमेंट के अंतर्गत कोड ब्लॉक के भीतर स्टेटमेंट, आमतौर पर एक सशर्त if के बाद बयान. <पी> जानकारी: इस ट्यूटोरियल में उदाहरण कोड का पालन करने के लिए, python3 चलाकर अपने स्थानीय सिस्टम पर एक पायथन इंटरैक्टिव शेल खोलें। आदेश. फिर आप उदाहरणों को >>> के बाद जोड़कर कॉपी, पेस्ट या संपादित कर सकते हैं संकेत. <पी> आइए एक उदाहरण देखें जो break का उपयोग करता है for में कथन लूप: number = 0
for number in range(10):
if number == 5:
break # break here
print('Number is ' + str(number))
print('Out of loop')
<पी> वेरिएबल number इस छोटे प्रोग्राम में 0 पर प्रारंभ किया गया है। फिर, एक for लूप का निर्माण 0 से 9 तक की संख्याओं को दोहराने के लिए किया गया है, जैसा कि range(10) द्वारा परिभाषित किया गया है . <पी> ध्यान दें :यद्यपि number प्रारंभ में 0 पर सेट किया गया है, यह मान तुरंत for द्वारा अधिलेखित कर दिया जाता है लूप, जो range() से नए मान निर्दिष्ट करता है प्रत्येक पुनरावृत्ति पर. <पी> for के भीतर लूप, एक if कथन यह शर्त प्रस्तुत करता है कि यदि वेरिएबल number पूर्णांक 5 के समतुल्य है, तब लूप टूट जाएगा. for का उपयोग करने के बारे में अधिक जानने के लिए आप पायथन में फॉर() लूप का उपयोग करने पर इस ट्यूटोरियल का संदर्भ ले सकते हैं। लूप. <पी> लूप के भीतर एक print() भी है वह कथन जो for के प्रत्येक पुनरावृत्ति के साथ निष्पादित होगा लूप टूटने तक लूप करें, क्योंकि यह break के बाद है बयान. <पी> आइए एक अंतिम print() रखें for के बाहर कथन यह जानने के लिए लूप करें कि आप कब लूप से बाहर हैं। <पी> जब आप इस कोड को चलाएंगे, तो आपको निम्नलिखित आउटपुट मिलेगा: Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Out of loop
<पी> इससे पता चलता है कि एक बार पूर्णांक number 5 के बराबर मूल्यांकन किया जाता है, लूप टूट जाता है, क्योंकि प्रोग्राम को break के साथ ऐसा करने के लिए कहा जाता है। बयान. <पी> break स्टेटमेंट के कारण प्रोग्राम लूप से बाहर हो जाता है। विवरण जारी रखें
<पी> continue स्टेटमेंट आपको लूप के उस हिस्से को छोड़ने की अनुमति देता है जहां बाहरी स्थिति ट्रिगर होती है, लेकिन बाकी लूप को पूरा करने के लिए आगे बढ़ने की अनुमति देता है। लूप की वर्तमान पुनरावृत्ति बाधित हो जाएगी, लेकिन प्रोग्राम लूप के शीर्ष पर वापस आ जाएगा। <पी> continue स्टेटमेंट लूप स्टेटमेंट के तहत कोड ब्लॉक के भीतर होगा, आमतौर पर सशर्त if के बाद बयान. <पी> उसी for का उपयोग करना break के अनुसार लूप प्रोग्राम उपरोक्त कथन अनुभाग में, हम continue का उपयोग करेंगे break के बजाय कथन कथनः number = 0
for number in range(10):
if number == 5:
continue # continue here
print('Number is ' + str(number))
print('Out of loop')
<पी> continue का उपयोग करने में अंतर break के बजाय कथन कथन यह है कि वेरिएबल number में व्यवधान के बावजूद हमारा कोड जारी रहेगा इसका मूल्यांकन 5 के बराबर किया गया है। आइए अपने आउटपुट की समीक्षा करें: Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Number is 6
Number is 7
Number is 8
Number is 9
Out of loop
<पी> यहां, Number is 5 आउटपुट में कभी नहीं होता है, लेकिन लूप उस बिंदु के बाद लूप छोड़ने से पहले संख्या 6-9 के लिए लाइनें प्रिंट करने के लिए जारी रहता है। <पी> आप continue का उपयोग कर सकते हैं गहराई से निहित सशर्त कोड से बचने या बार-बार होने वाले मामलों को समाप्त करके लूप को अनुकूलित करने के लिए कथन जिसे आप अस्वीकार करना चाहते हैं। <पी> continue स्टेटमेंट के कारण प्रोग्राम एक लूप के भीतर आने वाले कुछ कारकों को छोड़ देता है लेकिन फिर शेष लूप के माध्यम से जारी रहता है। पास स्टेटमेंट
<पी> जब कोई बाहरी स्थिति ट्रिगर होती है, तो pass स्टेटमेंट आपको बिना कोई ऑपरेशन किए कोड ब्लॉक के लिए पायथन की वाक्यात्मक आवश्यकता को पूरा करने की अनुमति देता है; break होने तक सभी कोड पढ़े जाते रहेंगे या अन्य कथन होता है. <पी> अन्य कथनों की तरह, pass स्टेटमेंट लूप स्टेटमेंट के तहत कोड ब्लॉक के भीतर होगा, आमतौर पर सशर्त if के बाद बयान. <पी> ऊपर दिए गए समान कोड ब्लॉक का उपयोग करते हुए, आइए break को बदलें या continue pass के साथ कथन कथनः number = 0
for number in range(10):
if number == 5:
pass # pass here
print('Number is ' + str(number))
print('Out of loop')
<पी> if के बाद सशर्त कथन, pass स्टेटमेंट प्रोग्राम को लूप चलाना जारी रखने और वेरिएबल number को अनदेखा करने के लिए कहता है इसके एक पुनरावृत्ति के दौरान इसका मूल्यांकन 5 के बराबर होता है। <पी> आप प्रोग्राम चलाएंगे और निम्नलिखित आउटपुट प्राप्त करेंगे: Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Number is 5
Number is 6
Number is 7
Number is 8
Number is 9
Out of loop
<पी> pass का उपयोग करके इस प्रोग्राम में स्टेटमेंट, आप देखते हैं कि प्रोग्राम ठीक उसी तरह चलता है जैसे प्रोग्राम में कोई सशर्त स्टेटमेंट नहीं होता। pass कथन प्रोग्राम को उस शर्त पर ध्यान न देने और प्रोग्राम को हमेशा की तरह चलाने के लिए कहता है। <पी> pass स्टेटमेंट न्यूनतम कक्षाएं बना सकता है, या नए कोड पर काम करते समय प्लेसहोल्डर के रूप में कार्य कर सकता है और विवरण निकालने से पहले एल्गोरिथम स्तर पर सोच सकता है। प्रदर्शन निहितार्थ:अपवाद बनाम ध्वज बनाम कार्य
<पी> पायथन में लूप के प्रवाह को नियंत्रित करते समय, आप स्वयं को अपवाद का उपयोग करने के बीच निर्णय लेते हुए पा सकते हैं , झंडे , या return के साथ कार्य करता है किसी लूप से जल्दी बाहर निकलने के लिए, विशेष रूप से नेस्टेड लूप या जटिल तर्क स्थितियों के मामले में। प्रत्येक विधि का प्रदर्शन और पठनीयता अलग-अलग होती है, यह इस बात पर निर्भर करता है कि इसका उपयोग कैसे किया जाता है। <पी> आइए उदाहरणों के साथ प्रत्येक दृष्टिकोण का पता लगाएं और चर्चा करें कि कब एक को दूसरे के स्थान पर उपयोग करना सबसे अच्छा है। लूप्स से बाहर निकलने के लिए अपवादों का उपयोग करना
<पी> पायथन में, गहरे नेस्टेड लूप से बाहर निकलने के लिए जानबूझकर अपवाद उठाए जा सकते हैं। हालाँकि यह विधि काम करती है, लेकिन यह सबसे कुशल नहीं है नियमित नियंत्रण प्रवाह के लिए. class ExitLoop(Exception):
pass
try:
for i in range(5):
for j in range(5):
if i == 2 and j == 3:
raise ExitLoop()
print(f"i={i}, j={j}")
except ExitLoop:
print("Exited nested loops using an exception.")
i=0, j=0
i=0, j=1
i=0, j=2
i=0, j=3
i=0, j=4
i=1, j=0
i=1, j=1
i=1, j=2
i=1, j=3
i=1, j=4
i=2, j=0
i=2, j=1
i=2, j=2
Exited nested loops using an exception.
<पी> ध्यान दें: पायथन में अपवादों को उठाना और पकड़ना अपेक्षाकृत धीमा है क्योंकि इसके लिए स्टैक अनवाइंडिंग और ऑब्जेक्ट निर्माण की आवश्यकता होती है। अपवाद वास्तव में असाधारण स्थितियों के लिए आदर्श होते हैं, नियमित नियंत्रण तर्क के लिए नहीं। नेस्टेड लूप्स से बाहर निकलने के लिए झंडे का उपयोग करना
<पी> फ़्लैग नेस्टेड लूप से बाहर निकलने का एक सरल और पठनीय तरीका है। जब कोई शर्त पूरी हो जाती है तो वे एक वेरिएबल (आमतौर पर एक बूलियन) सेट करके काम करते हैं, फिर बाहरी लूप में उस ध्वज की जाँच करते हैं। found = False
for i in range(5):
for j in range(5):
if i == 2 and j == 3:
found = True
break
print(f"i={i}, j={j}")
if found:
break
print("Exited nested loops using a flag.")
i=0, j=0
i=0, j=1
i=0, j=2
i=0, j=3
i=0, j=4
i=1, j=0
i=1, j=1
i=1, j=2
i=1, j=3
i=1, j=4
i=2, j=0
i=2, j=1
i=2, j=2
Exited nested loops using a flag.
<पी> लूप नियंत्रण के लिए झंडे अपवादों की तुलना में अधिक कुशल होते हैं और एक अच्छा विकल्प होते हैं जब: - आपको एकाधिक लूप से बाहर निकलने की आवश्यकता है।
- आप साफ़, पढ़ने योग्य कोड चाहते हैं।
- आप अतिरिक्त फ़ंक्शन या क्लास परिभाषाएँ प्रस्तुत नहीं करना चाहते।
return के साथ फ़ंक्शंस का उपयोग करना जल्दी बाहर निकलना
<पी> अपने लूप लॉजिक को एक फ़ंक्शन में लपेटना और return का उपयोग करना किसी शर्त के पूरा होने पर निष्पादन को रोकने के लिए बाहर निकलना एक पायथोनिक और कुशल तरीका है। def search():
for i in range(5):
for j in range(5):
if i == 2 and j == 3:
print("Condition met. Exiting function.")
return
print(f"i={i}, j={j}")
search()
i=0, j=0
i=0, j=1
i=0, j=2
i=0, j=3
i=0, j=4
i=1, j=0
i=1, j=1
i=1, j=2
i=1, j=3
i=1, j=4
i=2, j=0
i=2, j=1
i=2, j=2
Condition met. Exiting function.
<पी> किसी फ़ंक्शन का उपयोग करने से तर्क मॉड्यूलर हो जाता है और झंडे या अपवाद वर्गों के साथ बाहरी दायरे को अव्यवस्थित होने से बचाया जाता है। यह एक बढ़िया तरीका है जब: - आप किसी फ़ंक्शन के अंदर लूप को इनकैप्सुलेट कर सकते हैं।
- आप कम दुष्प्रभावों के साथ स्वच्छ निकास चाहते हैं।
- आप तर्क का पुन:उपयोग करने या स्वतंत्र रूप से इसका परीक्षण करने की योजना बना रहे हैं।
<पी> निम्न तालिका पायथन में लूप से बाहर निकलने की प्रत्येक विधि के लिए पठनीयता, प्रदर्शन और आदर्श उपयोग के मामलों की तुलना करती है, जिससे आपको अपने परिदृश्य के लिए सबसे प्रभावी दृष्टिकोण चुनने में मदद मिलती है। विधि | पठनीयता | प्रदर्शन | केस अनुशंसा का उपयोग करें | अपवाद लूप नियंत्रण के लिए LowSlowAvoid; वास्तविक अपवादों के लिएध्वजका उपयोग करें नेस्टेड लूप के लिए मीडियमफास्टगुड; अनुसरण करने में आसानफ़ंक्शन मॉड्यूलर और परीक्षण योग्य लूप लॉजिक के लिए हाईफ़ास्टबेस्ट <पी> अधिकांश स्थितियों के लिए जहां आपको नेस्टेड लूप या जटिल परिस्थितियों से बाहर निकलने की आवश्यकता होती है, फ़ंक्शन या फ़्लैग उनकी स्पष्टता और प्रदर्शन के कारण पसंदीदा तरीके हैं। अपवादों का उपयोग करने से बचें जब तक कि वास्तविक त्रुटियों या अप्रत्याशित स्थितियों से निपटना न हो। else का उपयोग करना क्लीनर एग्जिट के लिए लूप्स वाला क्लॉज
<पी> पायथन else की अनुमति देता है खंड का उपयोग for दोनों के साथ किया जाना चाहिए और while लूप्स हालाँकि यह सुविधा पहली बार में असामान्य लग सकती है, लेकिन इससे कोड साफ-सुथरा और अधिक पठनीय हो सकता है, खासकर जब इसे break जैसे नियंत्रण प्रवाह विवरण के साथ जोड़ा जाता है। . लूप को समझना else व्यवहार
<पी> else लूप से जुड़े ब्लॉक को केवल तभी निष्पादित किया जाता है जब लूप break का सामना किए बिना पूरा हो जाता है बयान. यह विशेष रूप से खोज कार्यों के लिए उपयोगी है, जहां आप एक अनुक्रम पर पुनरावृत्ति कर रहे हैं और यदि कोई शर्त पूरी होती है तो कोई कार्रवाई कर रहे हैं या यदि यह नहीं है तो वैकल्पिक कार्रवाई कर रहे हैं। <पी> इस सुविधा का अक्सर कम उपयोग किया जाता है, लेकिन जब इसे सही तरीके से लागू किया जाता है, तो यह अनावश्यक राज्य चर (जैसे झंडे) से बचने में मदद करता है और संबंधित तर्क को लूप निर्माण के दायरे में रखता है। उदाहरण:किसी सूची में कोई मान खोजना
<पी> आइए एक साधारण उपयोग के मामले पर विचार करें:किसी सूची में किसी आइटम की खोज करना। items = ["apple", "banana", "cherry", "date"]
for item in items:
if item == "cherry":
print("Found cherry!")
break
else:
print("Cherry not found.")
<पी> यह कैसे काम करता है: पी> - द
for लूप सूची पर पुनरावृत्त होता है।
- यदि
"cherry" पाया गया, break स्टेटमेंट लूप को तुरंत बंद कर देता है।
- यदि लूप
break का सामना किए बिना पूरा हो जाता है , else ब्लॉक रन.
<पी> आउटपुट: पी> Found cherry!
<पी> यदि हम खोज शब्द को किसी ऐसी चीज़ में बदलते हैं जो सूची में नहीं है: for item in items:
if item == "fig":
print("Found fig!")
break
else:
print("Fig not found.")
<पी> आउटपुट: पी> Fig not found.
<पी> यह दृष्टिकोण यह निर्धारित करने के लिए बाहरी ध्वज चर की आवश्यकता को समाप्त कर देता है कि आइटम पाया गया था या नहीं। else का उपयोग क्यों करें लूप्स के साथ?
<पी> else के बिना खंड, आप आम तौर पर ध्वज का उपयोग करके उसी तर्क का प्रबंधन करेंगे जो नियंत्रण प्रवाह को अनावश्यक रूप से जटिल बना सकता है: found = False
for item in items:
if item == "cherry":
print("Found cherry!")
found = True
break
if not found:
print("Cherry not found.")
<पी> जबकि यह काम करता है, इसके लिए एक अतिरिक्त वेरिएबल (found) को प्रस्तुत करने और प्रबंधित करने की आवश्यकता होती है ). else का उपयोग करना क्लॉज़ लूप निर्माण के भीतर तर्क को पूरी तरह से समाहित करने में मदद करता है, जिससे सरल और अधिक केंद्रित कोड बनता है, विशेष रूप से छोटी खोजों या सशर्त पुनरावृत्ति में। व्यावहारिक उपयोग का मामला:किसी कीवर्ड के लिए फ़ाइल को स्कैन करना
<पी> मान लीजिए कि आप किसी फ़ाइल को पंक्ति दर पंक्ति पढ़ रहे हैं और यह जांचना चाहते हैं कि इसमें कोई विशिष्ट कीवर्ड है या नहीं। for-else का उपयोग करना संरचना आपको दोनों परिणामों को साफ़-साफ़ संभालने की अनुमति देती है: with open("example.txt") as f:
for line in f:
if "error" in line:
print("Error found in file.")
break
else:
print("No errors detected.")
<पी> यहाँ: - लूप प्रत्येक पंक्ति को स्कैन करता है।
- यदि कीवर्ड
"error" पाया जाता है, यह एक संदेश प्रिंट करता है और लूप से जल्दी बाहर निकल जाता है।
- यदि ऐसी कोई पंक्ति मौजूद नहीं है, तो
else लूप समाप्त होने के बाद क्लॉज निष्पादित होता है।
<पी> यह पैटर्न फ़ाइल स्कैनिंग, लॉग विश्लेषण, या किसी भी खोज-थ्रू-अनुक्रम परिदृश्य में विशेष रूप से उपयोगी हो सकता है। else का उपयोग करना while के साथ लूप्स
<पी> else क्लॉज while के साथ काम करता है उसी तरह से लूप करें। यह तभी चलता है जब लूप की स्थिति break का सामना किए बिना झूठी हो जाती है . count = 0
while count < 5:
if count == 3:
print("Condition met. Exiting early.")
break
count += 1
else:
print("Loop completed without meeting condition.")
<पी> इस उदाहरण में: - यदि
count 3 तक पहुंचता है, लूप break के माध्यम से बाहर निकलता है , और else खंड छोड़ दिया गया है।
- यदि लूप
break को ट्रिगर किए बिना पूरी तरह से चलता है , else ब्लॉक निष्पादित होता है।
<पी> यह तब मददगार हो सकता है जब आप यह पता लगाना चाहते हैं कि क्या लूप ने पुनरावृत्तियों की अपनी पूरी श्रृंखला पूरी कर ली है या किसी विशिष्ट स्थिति के कारण समय से पहले समाप्त हो गया है। <पी> निम्न तालिका संक्षेप में बताती है कि लूप से जुड़ा अन्य क्लॉज कब निष्पादित होगा, यह इस पर निर्भर करता है कि लूप कैसे बाहर निकला है। परिदृश्य | है else निष्पादित? | लूप सभी पुनरावृत्तियों को पूरा करता है, हाँलूप break के साथ बाहर निकलता है नोलूप एक अपवाद के कारण बाहर निकलता हैनहीं (जब तक संभाला नहीं जाता)लूप शून्य बार चलता हैहाँ <पी> else लूप वाला क्लॉज सशर्त या अपवादों का प्रतिस्थापन नहीं है, लेकिन यह “नहीं मिला” को संभालने का एक साफ और पायथोनिक तरीका है। बाहरी राज्य प्रबंधन के बिना मामले या पोस्ट-पुनरावृत्ति तर्क। मल्टी-लेवल लूप ब्रेक के लिए वास्तविक दुनिया के परिदृश्य
<पी> कई वास्तविक दुनिया की प्रोग्रामिंग स्थितियों में, आप नेस्टेड लूप के साथ काम कर सकते हैं, खासकर जब संरचित डेटा को संभालना, फ़ाइलों को संसाधित करना, या ग्रिड के माध्यम से खोज करना। कभी-कभी, एक निश्चित शर्त पूरी होने पर आपको एक साथ कई स्तरों के लूप से बाहर निकलने की आवश्यकता होती है, जैसे कि मिलान ढूंढना या अमान्य डेटा का सामना करना। <पी> पायथन में बिल्ट-इन break outer नहीं है कुछ भाषाओं की तरह, इसलिए आप अक्सर return के साथ झंडे, फ़ंक्शन जैसी तकनीकों का उपयोग करेंगे , या नेस्टेड लूप से साफ़-साफ़ बाहर निकलने के लिए अपवाद। <पी> आइए यह समझने के लिए कई व्यावहारिक उदाहरण देखें कि मल्टी-लेवल लूप ब्रेक का प्रभावी ढंग से कब और कैसे उपयोग किया जाए। संरचित डेटा को पार्स करना (उदाहरण के लिए, CSV या JSON)
<पी> मान लीजिए कि आप सारणीबद्ध डेटा (जैसे CSV फ़ाइल से पंक्तियों की सूची) को पार्स कर रहे हैं, और आप एक विशिष्ट मान खोजना चाहते हैं। एक बार जब आपको यह मिल जाए, तो स्कैनिंग जारी रखने की कोई आवश्यकता नहीं है। <पी> यहां एक 2D सूची है जो एक साधारण डेटासेट की पंक्तियों और स्तंभों की नकल करती है: data = [
["id", "name", "status"],
["001", "Alice", "active"],
["002", "Bob", "inactive"],
["003", "Carol", "active"]
]
<पी> मान लीजिए कि आप यह जानना चाहते हैं कि "Bob" है या नहीं डेटासेट में मौजूद है: target = "Bob"
found = False
for row in data:
for item in row:
if item == target:
print(f"Found target '{target}' in row: {row}")
found = True
break # Exit inner loop
if found:
break # Exit outer loop
Found target 'Bob' in row: ['002', 'Bob', 'inactive']
<पी> यह क्यों काम करता है: पी> - आंतरिक लूप प्रत्येक आइटम की जांच करता है।
- जब इसे लक्ष्य मिल जाता है, तो यह
found सेट करता है True पर ध्वजांकित करें और आंतरिक पाश से बाहर निकल जाता है।
- बाहरी लूप ध्वज की जाँच करता है और टूट भी जाता है।
<पी> यह तकनीक आवश्यकता से अधिक डेटा को स्कैन करने से बचाती है, जिससे बड़े डेटासेट के प्रदर्शन में सुधार होता है। नेस्टेड निर्देशिकाओं में फ़ाइलें खोजना
<पी> लॉग विश्लेषण, सामग्री खोज, या सुरक्षा ऑडिट जैसे वास्तविक दुनिया के अनुप्रयोगों पर काम करते समय, आपको कई नेस्टेड निर्देशिकाओं में फैली सैकड़ों टेक्स्ट फ़ाइलों को खोजने की आवश्यकता हो सकती है। लक्ष्य अक्सर एक विशिष्ट कीवर्ड, जैसे एपीआई कुंजी, पासवर्ड या उपयोगकर्ता आईडी ढूंढना होता है। एक बार जब कीवर्ड किसी फ़ाइल में मिल जाता है, तो समय और संसाधनों को बचाने के लिए खोज तुरंत समाप्त कर देनी चाहिए। <पी> पायथन एक अंतर्निहित फ़ंक्शन प्रदान करता है जिसे os.walk() कहा जाता है यह आपको रूट निर्देशिका के भीतर सभी फ़ाइलों और फ़ोल्डरों को पुनरावर्ती रूप से पुनरावृत्त करने की अनुमति देता है, जिसका अर्थ है कि यह उपनिर्देशिकाओं में भी जाएगा। <पी> आइए एक उदाहरण देखें. आपको सभी .txt को पुनरावर्ती रूप से स्कैन करना होगा किसी निर्देशिका में फ़ाइलें, प्रत्येक पंक्ति में एक कीवर्ड खोजें, और कीवर्ड मिलने पर तुरंत रुकें और फ़ाइल नाम की रिपोर्ट करें। import os
def search_file(root_dir, keyword):
for folder, subfolders, files in os.walk(root_dir):
for file in files:
if file.endswith(".txt"):
with open(os.path.join(folder, file)) as f:
for line in f:
if keyword in line:
print(f"Found '{keyword}' in {file}")
return # Exit all loops by returning from the function
print("Keyword not found.")
<पी> आप फ़ंक्शन को इस प्रकार कॉल कर सकते हैं: search_file("./documents", "password123")
<पी> यहां फ़ंक्शन का उपयोग क्यों करें: पी> return फ़ंक्शन से तुरंत बाहर निकल जाता है, जो नेस्टेड लूप शामिल होने पर उपयोगी होता है।
- कोड के कई स्तरों पर झंडे का उपयोग करने की तुलना में अधिक स्वच्छ।
- आदर्श तब जब तर्क को मॉड्यूलर किया जा सकता है।
ग्रिड या मैट्रिक्स खोज (उदाहरण के लिए, गेम्स या पाथफ़ाइंडिंग में)
<पी> एक 2डी ग्रिड (सूचियों की सूची) के साथ काम करने की कल्पना करें, जैसे गेम मैप या सीटिंग चार्ट, और पहली बाधा या कब्जे वाली सीट को ढूंढने की आवश्यकता है। आप प्रत्येक शेष सेल की अनावश्यक रूप से जाँच करने के बजाय, पहली बाधा मिलते ही ग्रिड को स्कैन करना बंद कर देना चाहते हैं। <पी> आइए ग्रिड को परिभाषित करें जहां 0 एक खाली स्थान का प्रतिनिधित्व करता है, 1 एक बाधा का प्रतिनिधित्व करता है: grid = [
[0, 0, 0, 1],
[0, 1, 0, 0],
[0, 0, 0, 0],
]
<पी> मान लीजिए कि आपका कार्य पहली बाधा (1) ढूंढना है ) और फिर रुकें। found = False
for row_index, row in enumerate(grid):
for col_index, cell in enumerate(row):
if cell == 1:
print(f"Obstacle found at ({row_index}, {col_index})")
found = True
break # Exit inner loop
if found:
break # Exit outer loop
Obstacle found at (0, 3)
<पी> क्या हो रहा है: पी> - प्रत्येक सेल को नेस्टेड
for का उपयोग करके जांचा जाता है लूप्स.
- पहला
1 found का उपयोग करके दोनों लूपों से ब्रेक को ट्रिगर पाया गया झंडा.
<पी> इस प्रकार की खोज भूलभुलैया-समाधान, मैट्रिक्स स्कैनिंग, या माइनस्वीपर जैसे गेम में आम है। नेस्टेड डेटा फ़ील्ड को मान्य करना
<पी> वास्तविक दुनिया के अनुप्रयोगों में, विशेष रूप से फॉर्म हैंडलिंग, एपीआई प्रसंस्करण, या उपयोगकर्ता प्रबंधन प्रणालियों में, आप अक्सर शब्दकोशों की सूचियों से निपटते हैं, प्रत्येक शब्दकोश कई क्षेत्रों के साथ एक रिकॉर्ड का प्रतिनिधित्व करता है। <पी> यह सत्यापित करने के लिए कि सभी आवश्यक फ़ील्ड भरे गए हैं, आप इन रिकॉर्ड्स को स्कैन करना चाह सकते हैं। यदि कोई फ़ील्ड खाली है, तो आपके एप्लिकेशन को तुरंत प्रसंस्करण बंद कर देना चाहिए और उपयोगकर्ता को सचेत करना चाहिए या त्रुटि लॉग करना चाहिए। <पी> आइए एक उदाहरण देखें. हमारे पास उपयोगकर्ताओं की एक सूची है जहां प्रत्येक उपयोगकर्ता के पास name होना चाहिए और एक email; हमारा लक्ष्य सभी उपयोगकर्ताओं को स्कैन करना, उनके प्रत्येक फ़ील्ड की जांच करना है, और जैसे ही कोई फ़ील्ड गायब है, तुरंत प्रसंस्करण बंद करना है, यह रिपोर्ट करना है कि कौन सा फ़ील्ड गायब है और किस उपयोगकर्ता के लिए है। <पी> निम्नलिखित नमूना इनपुट पर विचार करें: users = [
{"name": "Alice", "email": "alice@example.com"},
{"name": "Bob", "email": ""},
{"name": "Carol", "email": "carol@example.com"},
]
<पी> यहां, बॉब का ईमेल फ़ील्ड खाली है। हम उसे पकड़ना चाहते हैं। invalid = False
for user in users:
for key, value in user.items():
if not value:
print(f"Invalid entry: Missing {key} for user {user['name']}")
invalid = True
break
if invalid:
break
Invalid entry: Missing email for user Bob
<पी> प्रोग्राम सही ढंग से पहचानता है कि बॉब का ईमेल गायब है और आगे की जाँच बंद कर देता है; कैरल का कभी मूल्यांकन नहीं किया जाता, क्योंकि हम लूप से जल्दी बाहर निकल गए। <पी> यह पैटर्न क्यों उपयोगी है: पी> - त्रुटि का पता चलने पर आप अनावश्यक जांच को रोकते हैं।
- असफल-तेज़ व्यवहार को लागू करने में मदद करता है , जहां कुछ गलत होने पर सिस्टम जल्दी बंद हो जाता है।
आपको मल्टी-लेवल ब्रेक का उपयोग कब करना चाहिए?
<पी> बहु-स्तरीय ब्रेक का उपयोग तब करें जब: - लूप जारी रखने से समय या संसाधन बर्बाद होंगे।
- आप जो खोज रहे हैं वह आपको पहले ही मिल चुका है।
- जल्दी बाहर निकलने से तर्क को समझना और बनाए रखना आसान हो जाता है।
<पी> अपना तरीका सोच-समझकर चुनें: विधि | सर्वश्रेष्ठ जब... | झंडा आप एक लूप के अंदर हैं लेकिन फ़ंक्शन से बाहर नहीं निकलना चाहते।फ़ंक्शन आपका तर्क मॉड्यूलर है और किसी रूटीन से जल्दी वापस आ सकता है।अपवाद आपके पास गहराई से निहित तर्क और एक सच्चा "असाधारण" मामला है। अक्सर पूछे जाने वाले प्रश्न
1. pass का उपयोग कैसे करें , continue , और break पायथन में?
- <पी>
pass :pass कथन कुछ नहीं करता; इसका उपयोग प्लेसहोल्डर के रूप में तब किया जाता है जब किसी कथन की वाक्य रचना की आवश्यकता होती है लेकिन किसी कार्रवाई की आवश्यकता नहीं होती है। उदाहरण के लिए: for i in range(5):
if i == 3:
pass # Placeholder for future code
print(i)
- <पी>
continue :continue स्टेटमेंट वर्तमान पुनरावृत्ति में शेष कोड को छोड़ देता है और लूप के अगले पुनरावृत्ति पर चला जाता है। उदाहरणः for i in range(5):
if i == 3:
continue # Skip the current iteration when i == 3
print(i)
- <पी>
break :break पुनरावृत्ति स्थिति की परवाह किए बिना, कथन तुरंत लूप से बाहर निकल जाता है। उदाहरणः for i in range(5):
if i == 3:
break # Exit the loop when i == 3
print(i)
2. आप break का उपयोग कैसे कर सकते हैं और continue for में कथन लूप?
<पी> break स्टेटमेंट का उपयोग for के अंदर किया जा सकता है एक विशिष्ट शर्त पूरी होने पर इसे जल्दी समाप्त करने के लिए लूप। उदाहरणः for i in range(10):
if i == 5:
break # Exit the loop when i == 5
print(i)
<पी> continue कथन शेष वर्तमान पुनरावृत्ति को छोड़ देता है और अगले पुनरावृत्ति पर चला जाता है। उदाहरणः for i in range(10):
if i % 2 == 0:
continue # Skip even numbers
print(i) # Only prints odd numbers
3. क्या आप break के बाद लूप फिर से शुरू कर सकते हैं ?
<पी> एक बार break कथन निष्पादित किया जाता है, लूप समाप्त हो जाता है, और लूप निष्पादित होने के बाद कोड निष्पादित होता है। यदि आप लूप को तोड़ने के बाद "जारी" रखना चाहते हैं, तो आपको लूप को फिर से प्रारंभ करना होगा। <पी> उदाहरण के लिए: for i in range(3): # First loop
if i == 1:
break # Break out of the loop when i == 1
print(f"First loop iteration: {i}")
# Restarting the loop
for i in range(3, 6): # Second loop
print(f"Second loop iteration: {i}")
4. मैं break का उपयोग कैसे कर सकता हूं लूप्स के लिए मेरे पायथन में स्टेटमेंट?
<पी> break किसी विशिष्ट शर्त के पूरा होने पर इसे समाप्त करने के लिए लूप में स्टेटमेंट का उपयोग करना आसान है: for i in range(5):
print(f"Checking value: {i}")
if i == 2:
print("Condition met. Breaking out of the loop.")
break # Exit the loop immediately
print("Loop ended.")
5. पायथन में लूप को कैसे कोड करें?
<पी> पायथन में, लूप्स को for का उपयोग करके लिखा जा सकता है या while . उदाहरण: <पी> for का उपयोग करना लूप: for i in range(5):
print(i) # Prints numbers from 0 to 4
<पी> while का उपयोग करना लूप: count = 0
while count < 5:
print(count) # Prints numbers from 0 to 4
count += 1
<पी> for का उपयोग करने के बारे में अधिक जानने के लिए लूप और while पायथन में लूप, आप नीचे दिए गए ट्यूटोरियल का संदर्भ ले सकते हैं: - पायथन में लूप के लिए उपयोग करना
- पायथन में While लूप का उपयोग करना
6. pass क्या करता है Python for में करें लूप?
<पी> pass स्टेटमेंट प्लेसहोल्डर के रूप में कार्य करता है और कोई कार्रवाई नहीं करता है। इसका उपयोग अक्सर तब किया जाता है जब कोड का एक ब्लॉक वाक्यात्मक रूप से आवश्यक होता है लेकिन अभी तक लागू नहीं किया गया है: for i in range(5):
if i == 3:
pass # Placeholder
print(i)
0
1
2
3
4
7. क्या पाइथॉन break करता है सभी लूप से बाहर निकलें?
<पी> नहीं, break स्टेटमेंट केवल आंतरिक लूप से बाहर निकलता है जहां इसे निष्पादित किया जाता है। नेस्टेड लूप से बाहर निकलने के लिए, आप अतिरिक्त नियंत्रण तंत्र, जैसे फ़्लैग या फ़ंक्शंस का उपयोग कर सकते हैं। उदाहरणः for i in range(3):
for j in range(3):
if i == 1 and j == 1:
break # Exits the inner loop
print(f"i={i}, j={j}")
i=0, j=0
i=0, j=1
i=0, j=2
i=1, j=0
i=2, j=0
i=2, j=1
i=2, j=2
<पी> सभी लूप से बाहर निकलने के लिए, आप फ़्लैग का उपयोग कर सकते हैं या लूप को किसी फ़ंक्शन में लपेट सकते हैं और return का उपयोग कर सकते हैं : # Using a flag
flag = False
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
flag = True
break
print(f"i={i}, j={j}")
if flag:
break
# Using a function
def nested_loops():
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
return # Exit all loops
print(f"i={i}, j={j}")
nested_loops()
8. पायथन में एकाधिक नेस्टेड लूप से कैसे छुटकारा पाएं?
<पी> पायथन break 2 जैसे अंतर्निहित सिंटैक्स का समर्थन नहीं करता है एक साथ कई नेस्टेड लूप से बाहर निकलने के लिए। इसके बजाय, आप निम्न विधियों में से किसी एक का उपयोग करके नेस्टेड लूप से बाहर निकल सकते हैं: - <पी> फ़्लैग वेरिएबल का उपयोग करें: पी>
found = False
for i in range(3):
for j in range(3):
if some_condition(i, j):
found = True
break # Break inner loop
if found:
break # Break outer loop
- <पी> लूप्स को एक फ़ंक्शन में लपेटें और
return का उपयोग करें : पी> def search():
for i in range(3):
for j in range(3):
if some_condition(i, j):
print("Condition met.")
return # Exits both loops
search()
<पी> यह फ़ंक्शन-आधारित दृष्टिकोण अक्सर पठनीयता और मॉड्यूलरिटी के लिए पसंद किया जाता है। 9. क्या पायथन लूप्स में कोई ब्रेक लेवल पैरामीटर है?
<पी> नहीं, पायथन में break नहीं है कुछ अन्य भाषाओं (जैसे जावा या PHP) की तरह स्तर या लेबल-आधारित लूप नियंत्रण। break पाइथॉन में स्टेटमेंट हमेशा केवल उस आंतरिक लूप से बाहर निकलता है जिसमें इसका उपयोग किया जाता है। <पी> नेस्टिंग के कई स्तरों से बाहर निकलने के लिए, आपको इसका उपयोग करने की आवश्यकता है: - एक झंडा बाहरी लूप को संकेत देने के लिए।
- एक कार्य
return के साथ .
- एक अपवाद , हालाँकि इसका उपयोग सावधानीपूर्वक और उचित होने पर ही किया जाना चाहिए।
10. आंतरिक लूप के अंदर से बाहरी लूप से कैसे बाहर निकलें?
<पी> आंतरिक लूप के अंदर से बाहरी लूप से बाहर निकलने के लिए, आप या तो: कर सकते हैं - <पी> एक फ़्लैग वेरिएबल का उपयोग करें जो आंतरिक लूप के अंदर सेट हो जाता है और बाहरी लूप में चेक किया जाता है:
exit_outer = False
for i in range(5):
for j in range(5):
if i == 2 and j == 3:
exit_outer = True
break
if exit_outer:
break
- <पी> किसी फ़ंक्शन में लूप को इनकैप्सुलेट करें और
return का उपयोग करें एक स्वच्छ और अधिक पायथोनिक दृष्टिकोण के लिए: def process():
for i in range(5):
for j in range(5):
if i == 2 and j == 3:
print("Exiting from nested loop.")
return
process()
11. क्या लूप ब्रेकिंग के लिए अपवादों का उपयोग करना एक अच्छा अभ्यास है?
<पी> लूप से बाहर निकलने के लिए अपवादों का उपयोग करना तकनीकी रूप से संभव है लेकिन सामान्य नियंत्रण प्रवाह के लिए इसे अच्छा अभ्यास नहीं माना जाता है। class BreakOut(Exception):
pass
try:
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
raise BreakOut()
except BreakOut:
print("Exited nested loops using exception.")
<पी> हालांकि यह काम करता है, अपवाद अप्रत्याशित या असाधारण स्थितियों के लिए होते हैं, मानक लूप नियंत्रण के लिए नहीं। इस तरह से अपवादों का उपयोग करने से आपके कोड को पढ़ना, बनाए रखना और डीबग करना कठिन हो सकता है। जब तक आप वास्तव में किसी असाधारण मामले से नहीं निपट रहे हों, तब तक झंडे या फ़ंक्शन-आधारित निकास को प्राथमिकता दें। निष्कर्ष
<पी> आपने पायथन में कोर लूप कंट्रोल स्टेटमेंट की खोज की:break , continue , और pass , स्पष्ट उदाहरणों और व्यावहारिक उपयोग के मामलों के साथ उनके व्यवहार को समझाना। हमने अधिक उन्नत नियंत्रण प्रवाह तकनीकों का भी पता लगाया, जैसे कि झंडे और फ़ंक्शन रिटर्न का उपयोग करके नेस्टेड लूप को तोड़ना, और उनके ट्रेड-ऑफ के साथ लूप समाप्ति के लिए अपवादों के उपयोग पर चर्चा की। <पी> इसके अतिरिक्त, हमने else पेश किया लूप्स पर खंड, इस बात पर प्रकाश डालता है कि यह अतिरिक्त झंडों की आवश्यकता को समाप्त करके कुछ खोज पैटर्न को कैसे सरल बना सकता है। वास्तविक दुनिया के उदाहरण जैसे डेटा पार्सिंग, फ़ाइल स्कैनिंग, ग्रिड खोज और इनपुट सत्यापन का उपयोग यह दिखाने के लिए किया गया था कि ये तकनीकें व्यवहार में कैसे लागू होती हैं। साथ में, ये अवधारणाएं आपको पायथन में अधिक संरचित, पठनीय और कुशल लूप लॉजिक लिखने में मदद करती हैं। <पी> पायथन लूप्स और कोर प्रोग्रामिंग अवधारणाओं के बारे में अपनी समझ को और बेहतर बनाने के लिए, इन उपयोगी ट्यूटोरियल्स को देखें: - लूप के लिए पायथन
- शुरुआती लोगों के लिए एक व्यावहारिक पायथन ट्यूटोरियल
- पायथन में सूचियों को जोड़ने के 6 तरीके
- पायथन 3 में व्हाइल लूप्स का निर्माण कैसे करें
- पायथन 3 और ट्वीपी लाइब्रेरी के साथ ट्विटरबॉट कैसे बनाएं।
<पी>
यह कार्य क्रिएटिव कॉमन्स एट्रिब्यूशन-नॉन-कमर्शियल- के तहत लाइसेंस प्राप्त है शेयरअलाइक 4.0 अंतर्राष्ट्रीय लाइसेंस।पी>