مرکزی مواد پر جائیں
ماڈیول 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 آن دی لوپ (Pythonic محاورہ)

ایک ازگر کی خاصیت: لوپس میں else بھی ہو سکتا ہے، صرف اس صورت میں عمل میں لایا جاتا ہے جب لوپ ختم قدرتی طور پر (بغیر break)۔ یہ تلاش کے لیے بہترین ہے:

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

اسے اس طرح پڑھیں: "لسٹ میں ہر ایک کے لیے؛ اگر آپ 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۔

غیر معمولی لوپ... اور تعمیر

Python میں، دونوں 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 سے 20 تک کے طاق نمبروں کے ساتھ فہرست `odd_numbers` بنائیں (بشمول) ایک فار لوپ اوور رینج (1, 21) کا استعمال کرتے ہوئے اور ایونز کو چھوڑنا جاری رکھیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

اگر 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 کوششوں کے بعد حل دستیاب ہے۔