Python for AI/Python শুরু/Lesson 08
Loops: for ও while
একই কাজ বারবার — for loop, range(), while, break/continue, enumerate। Training loop বোঝার আগের ধাপ।
- সময়
- 22 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
Loop মানে একই কাজ বারবার করা। ১০০০ জন student-এর grade বের করতে ১০০০ বার code লিখতে হবে না — একবার লিখে loop-কে বলো সবার জন্য চালাতে।
Python-এ দুই ধরনের loop:
- for — একটা সংগ্রহের (list, string, range) প্রতিটা item-এর জন্য
- while — যতক্ষণ একটা শর্ত সত্য
কেন দরকার?
Neural network train করা মানে আসলে একটা loop:
for each epoch:
for each batch of data:
prediction বানাও
error (loss) মাপো
model একটু ঠিক করো
PyTorch-এ প্রতিটা training code-এ এই nested loop দেখবে। আজ সেই ভিত্তিটা তৈরি হবে।
for loop
প্রতিবার city variable list-এর পরের item-টা পায়। Loop-এর ভেতরের code-ও if-এর মতো indent করা।
range()
নির্দিষ্ট সংখ্যকবার কিছু করতে range():
| লেখা | মান |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(1, 6) | 1, 2, 3, 4, 5 |
range(0, 20, 5) | 0, 5, 10, 15 |
Loop দিয়ে হিসাব জমানো
খুব common pattern — একটা variable শুরুতে 0, loop-এ ক্রমাগত যোগ:
enumerate(): index আর মান একসাথে
while loop
শর্ত সত্য থাকা পর্যন্ত চলে:
সাবধান: while-এর শর্ত কখনো False না হলে loop চিরকাল চলবে — infinite loop। এখানে ১০ সেকেন্ড পর platform নিজে থেকে থামিয়ে দেবে, কিন্তু real server-এ এটা বড় সমস্যা।
break ও continue
Exercise
Exercise
কতজন pass করেছে?
marks list-এ কতজনের মার্ক 40 বা তার বেশি সেটা for loop দিয়ে গুনে passed variable-এ রাখো।
Quiz
Challenge
Challenge
FizzBuzz
Programming interview-এর সবচেয়ে বিখ্যাত প্রশ্ন! 1 থেকে 15 পর্যন্ত প্রতিটা সংখ্যার জন্য এক লাইনে print করো:
- 3 আর 5 দুটো দিয়েই বিভাজ্য হলে →
FizzBuzz - শুধু 3 দিয়ে বিভাজ্য হলে →
Fizz - শুধু 5 দিয়ে বিভাজ্য হলে →
Buzz - নাহলে সংখ্যাটা নিজেই
বাস্তবে কোথায় ব্যবহার হয়?
Early stopping — validation loss বাড়তে শুরু করলে training থামিয়ে দেওয়া — একটা loop আর break দিয়েই লেখা হয়:
পরে শিখব NumPy দিয়ে অনেক কাজ loop ছাড়াই (vectorization) অনেক দ্রুত করা যায় — কিন্তু loop বোঝা ছাড়া সেটার মূল্য বোঝা যায় না।
Interview প্রশ্ন
- Beginner: for আর while loop-এর মধ্যে কখন কোনটা ব্যবহার করবে?
- Intermediate: Loop চলাকালীন সেই list থেকে item remove করলে কী সমস্যা হয়?
- Advanced: Python loop কেন NumPy vectorized operation-এর চেয়ে ধীর?
এরপর কী?
একই code বারবার লিখছি? সেটাকে একটা নাম দিয়ে আলাদা করে রাখা যায় — পরের lesson: Functions।