Python-এ দুটো লুপ কীওয়ার্ড আছে — for আর while। Python-এর for সবসময় একটি iterable-এর (একটি লিস্ট, স্ট্রিং, range, ইত্যাদি) উপর লুপ করে — নির্দিষ্ট সংখ্যকবার গোনা বনাম একটি কালেকশনের উপর লুপ করার জন্য আলাদা কোনো কীওয়ার্ডের দরকার নেই।
লিস্ট আর ডিকশনারির উপর লুপ করার সময় আপনি ইতিমধ্যেই এটি ব্যবহার করেছেন। নির্দিষ্ট সংখ্যকবার লুপ করতে range() ব্যবহার করা হয়:
for i in range(5):
print(f"Count: {i}") # 0, 1, 2, 3, 4 — range(5) stops before 5
for i in range(1, 6):
print(f"Count: {i}") # 1, 2, 3, 4, 5Python-এ C-স্টাইলের for (i = 0; i < 5; i++) নেই — একটি গোনা লুপ পাওয়ার উপায় হলো range()।
একটি শর্ত true থাকা পর্যন্ত পুনরাবৃত্তি করে:
count = 0
while count < 3:
print(f"Iteration {count}")
count += 1 # Python has no ++ operator — this is the idiomatic wayPython-এ ++ নেই
Python-এ একেবারেই কোনো ++ বা -- increment/decrement অপারেটর নেই — একটি ভ্যারিয়েবলকে এক বাড়ানোর একমাত্র উপায় count += 1। এটি একটি ইচ্ছাকৃত ভাষা ডিজাইন সিদ্ধান্ত, কোনো ভুল নয়।
Python-এ কোনো do-while লুপ নেই — এমন একটি লুপ যা কন্ডিশন চেক করার আগে অন্তত একবার তার body চালায়। সাধারণ সমাধান হলো একটি while True লুপ, যেখানে শর্তটি সাধারণত চেক হতো সেখানে একটি break দিয়ে:
count = 10
while True:
print(f"This runs once, even though {count} is not < 3.")
if not (count < 3):
breakfor i in range(1, 11):
if i == 6:
break # stops the loop entirely
if i % 2 == 0:
continue # skips this iteration, keeps looping
print(i, end=" ")
# Output: 1 3 5এটি সত্যিকারভাবে স্বতন্ত্র: একটি লুপের নিজের else থাকতে পারে, যা চলে যদি লুপটি স্বাভাবিকভাবে শেষ হয় — অর্থাৎ, শুধু যদি break কখনো না ঘটে:
numbers = [2, 4, 6, 8]
for n in numbers:
if n % 2 != 0:
print("Found an odd number.")
break
else:
print("All numbers are even.") # runs, since break never firedপ্রথমে এটা অদ্ভুত মনে হয়, কিন্তু break ঘটেছিল কিনা ট্র্যাক করার জন্য একটি আলাদা flag ভ্যারিয়েবল ছাড়াই "কিছু খোঁজা, আর সেটা না পাওয়া গেলে X করা" প্রকাশ করার এটি একটি পরিষ্কার উপায়।