मुख्य सामग्री पर जाएं
मॉड्यूल 2 · पाठ 3 का 4पाठ्यक्रम में 7/36~10 min
मॉड्यूल पाठ (3/4)

तोड़ें, जारी रखें और अन्यथा लूप में

एक लूप के अंदर (for और while दोनों) आप सामान्य प्रवाह को बदल सकते हैं तीन निर्माण:

  • break - लूप से तुरंत बाहर निकल जाता है।
  • continue - शरीर के बाकी हिस्सों को छोड़ देता है और अगले पुनरावृत्ति पर चला जाता है।
  • else (लूप पर) - तब निष्पादित होता है जब लूप बिना break के समाप्त हो जाता है।

break

Python
for n in [3, 7, 11, 4, 9]:
    if n % 2 == 0:
        primo_pari = n
        break
primo_pari  # 4

break जितनी जल्दी हो सके लूप बंद कर देता है। break के बाद कुछ भी वर्तमान पुनरावृत्ति का मुख्य भाग निष्पादित नहीं है।

continue

Python
risultati = []
for n in range(1, 11):
    if n % 2 == 0:
        continue   # skip evens
    risultati.append(n * n)
risultati  # [1, 9, 25, 49, 81]

continue को "अगले पुनरावृत्ति पर जाएं" के रूप में सोचें। इसका उपयोग वस्तुओं को फ़िल्टर करने के लिए किया जाता है एक और इंडेंटेशन स्तर जोड़े बिना।

else लूप पर (पायथनिक मुहावरा)

पायथन की एक विशेषता: लूप में एक else भी हो सकता है, जिसे केवल तभी निष्पादित किया जाता है लूप समाप्त हो गया स्वाभाविक रूप से (break के बिना)। यह खोजों के लिए बिल्कुल उपयुक्त है:

Python
target = 7
for n in [2, 4, 6, 8]:
    if n == target:
        trovato = True
        break
else:
    trovato = False
trovato  # False

इसे इस प्रकार पढ़ें: "सूची में प्रत्येक n के लिए; यदि आप break शाखा लेते हैं, तो छोड़ें अन्य; अन्यथा अन्य निष्पादित करें"।

नेस्टेड लूप: ब्रेक केवल अंतरतम से बाहर निकलता है

Python
for x in range(3):
    for y in range(3):
        if x == y == 1:
            break
        print(x, y)

break केवल for y से बाहर निकलता है, for x से नहीं। दोनों से बाहर निकलने के लिए आपको a का उपयोग करना होगा ध्वज या फ़ंक्शन + return।

असामान्य लूप...अन्यथा निर्माण

पायथन में, for और while लूप दोनों में एक वैकल्पिक else क्लॉज हो सकता है। else ब्लॉक को केवल तभी निष्पादित किया जाता है जब लूप सामान्य रूप से पूरा हो जाता है (यानी break स्टेटमेंट का सामना किए बिना)। यह खोज एल्गोरिदम के लिए बहुत उपयोगी है (उदाहरण के लिए "किसी तत्व की खोज करें: यदि मिल जाए, तो तोड़ दें; अन्यथा, रिपोर्ट करें कि यह नहीं मिला")।

खुद कोशिश करना

व्यायाम#python.m2.l3.e1
प्रयास: 0लोड हो रहा है...

सूची `संख्या = [10, 15, 20, 25, 30, 35]` को देखते हुए, 7 से विभाज्य पहली संख्या ढूंढें और इसे `परिणाम` के लिए निर्दिष्ट करें। यदि कोई मौजूद नहीं है, तो -1 असाइन करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

35 सूची में 7 से विभाज्य होने वाला पहला (और एकमात्र) है।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#python.m2.l3.e2
प्रयास: 0लोड हो रहा है...

रेंज (1, 21) पर लूप का उपयोग करके 1 से 20 (समावेशी) तक की विषम संख्याओं के साथ `odd_numbers` सूची बनाएं और ईवन को छोड़ना जारी रखें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

यदि n सम है, तो जारी रखें; अन्यथा संलग्न करें.

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#python.m2.l3.e3
प्रयास: 0लोड हो रहा है...

Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.

संपादक लोड हो रहा है...
संकेत दिखाएँ

Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.

3 प्रयासों के बाद समाधान उपलब्ध है