মূল কন্টেন্টে যান
মডিউল 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 থেকে নয়। উভয় থেকে প্রস্থান করতে আপনাকে অবশ্যই একটি ব্যবহার করতে হবে পতাকা বা একটি ফাংশন + 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 থেকে 20 পর্যন্ত বিজোড় সংখ্যাগুলির সাথে 'বিজোড়_সংখ্যা' তালিকাটি তৈরি করুন (অন্তর্ভুক্ত) একটি ফর লুপ ওভার রেঞ্জ (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 প্রচেষ্টার পরে উপলব্ধ