Class - XII: SEMESTER – III: Unit – 1: Python Programming: Section 8: Iterative Statement
Python Programming: Iterative Statements
১. Iterative Statement কী?
Programming-এ Iterative Statement বলতে বোঝায় এমন statement বা structure যার মাধ্যমে একই কাজ একাধিকবার repeat করা যায়। সহজভাবে বললে, কোনো কাজ বারবার করার জন্য যে programming structure ব্যবহার করা হয় তাকে iterative statement বা loop বলা হয়।
বাস্তব জীবনে আমরা অনেক কাজ বারবার করি। যেমন, ১ থেকে ১০ পর্যন্ত সংখ্যা বলা, একটি class-এর প্রতিটি student-এর marks check করা, একটি shopping cart-এর প্রতিটি product-এর price যোগ করা, অথবা password correct না হওয়া পর্যন্ত user-এর কাছ থেকে input নেওয়া। এই repeated কাজগুলো programming-এ loop-এর সাহায্যে করা হয়।
Python programming language-এ iterative statements খুব গুরুত্বপূর্ণ, কারণ এগুলো program-কে efficient এবং short করে। যদি loop না থাকত, তাহলে একই কাজ করার জন্য আমাদের অনেক line code লিখতে হতো।
Python-এ প্রধান Iterative Statements:
forloopwhileloopbreakstatementcontinuestatement- Nested loops
২. Loop কেন দরকার?
Loop ব্যবহার করার মূল উদ্দেশ্য হলো repeated কাজ সহজভাবে করা। ধরুন, আপনি ১ থেকে ১০ পর্যন্ত সংখ্যা print করতে চান।
Loop ছাড়া আপনাকে ১০ বার print() লিখতে হবে। কিন্তু loop ব্যবহার করলে মাত্র কয়েক line code দিয়েই কাজটি করা যায়।
Loop ছাড়া:
print(1)
print(2)
print(3)
print(4)
print(5)
Loop ব্যবহার করে:
for i in range(1, 6):
print(i)
এখানে দেখা যাচ্ছে loop code-কে ছোট, পরিষ্কার এবং maintainable করে।
Loop ব্যবহার করার সুবিধা:
- Repeated code কমায়
- Program সহজ এবং readable করে
- Large data process করতে সাহায্য করে
- Pattern, series, factorial, summation ইত্যাদি সহজে calculate করা যায়
- List, string, tuple, dictionary-এর প্রতিটি item process করা যায়
৩. for Loop
Python-এ for loop সাধারণত কোনো sequence-এর উপর iterate করার জন্য ব্যবহার করা হয়।
Sequence হতে পারে list, tuple, string, dictionary, set অথবা range() function-এর generated values।
যখন আমরা আগে থেকেই জানি loop কতবার চলবে, তখন সাধারণত for loop ব্যবহার করা হয়।
যেমন ১ থেকে ১০ পর্যন্ত সংখ্যা print করা, list-এর প্রতিটি item দেখানো, বা নির্দিষ্ট range-এর উপর calculation করা।
Syntax:
for variable in sequence:
statement
Example: ১ থেকে ৫ পর্যন্ত সংখ্যা print করা
for i in range(1, 6):
print(i)
Output:
1
2
3
4
5
এখানে range(1, 6) 1 থেকে শুরু করে 5 পর্যন্ত value generate করে। Python-এ range-এর শেষ value include হয় না।
তাই range(1, 6) মানে 1, 2, 3, 4, 5।
Example: List-এর item print করা
fruits = ["Apple", "Banana", "Mango"]
for fruit in fruits:
print(fruit)
এখানে list-এর প্রতিটি element একবার করে fruit variable-এ store হয় এবং print হয়।
Example: String-এর প্রতিটি character print করা
name = "Python"
for ch in name:
print(ch)
Python string-কেও sequence হিসেবে treat করে। তাই string-এর প্রতিটি character loop-এর মাধ্যমে access করা যায়।
৪. range() Function
Python-এ range() function number sequence তৈরি করার জন্য ব্যবহার করা হয়।
এটি সাধারণত for loop-এর সাথে বেশি ব্যবহৃত হয়।
range() ব্যবহারের তিনটি পদ্ধতি:
| Syntax | ব্যাখ্যা | Example |
|---|---|---|
range(stop) |
0 থেকে শুরু করে stop-এর আগ পর্যন্ত number generate করে | range(5) → 0, 1, 2, 3, 4 |
range(start, stop) |
start থেকে শুরু করে stop-এর আগ পর্যন্ত number generate করে | range(1, 6) → 1, 2, 3, 4, 5 |
range(start, stop, step) |
start থেকে stop-এর আগ পর্যন্ত step difference দিয়ে number generate করে | range(2, 11, 2) → 2, 4, 6, 8, 10 |
Example: range(stop)
for i in range(5):
print(i)
Example: range(start, stop)
for i in range(1, 6):
print(i)
Example: range(start, stop, step)
for i in range(2, 11, 2):
print(i)
Reverse Counting:
for i in range(5, 0, -1):
print(i)
এখানে range(5, 0, -1) 5 থেকে শুরু করে 1 পর্যন্ত reverse order-এ value generate করে।
৫. for Loop-এর Flowchart
for loop-এর flowchart বুঝলে loop-এর execution process পরিষ্কার হয়। for loop প্রথমে sequence থেকে একটি value নেয়, তারপর loop body execute করে, এরপর next value নেয়। sequence শেষ হয়ে গেলে loop stop হয়।
available?
৬. while Loop
while loop তখন ব্যবহার করা হয় যখন কোনো condition true থাকা পর্যন্ত একটি block repeatedly execute করতে হয়।
অর্থাৎ, while loop condition-based loop। condition true থাকলে loop চলবে, আর condition false হলে loop stop হবে।
যখন loop কতবার চলবে তা আগে থেকে জানা থাকে না, কিন্তু একটি condition-এর উপর loop depend করে, তখন while loop বেশি useful।
যেমন user যতক্ষণ না correct password দিচ্ছে, ততক্ষণ input নেওয়া।
Syntax:
while condition:
statement
Example: ১ থেকে ৫ পর্যন্ত সংখ্যা print করা
count = 1
while count <= 5:
print(count)
count = count + 1
Output:
1
2
3
4
5
এখানে count variable initially 1। condition count <= 5 true থাকা পর্যন্ত loop চলবে।
প্রতিবার loop শেষে count 1 করে increase করা হয়েছে। count 6 হলে condition false হবে এবং loop stop হবে।
Example: Password Checking
password = ""
while password != "python123":
password = input("Password লিখুন: ")
print("Login successful")
এখানে user যতক্ষণ না correct password লিখছে, loop চলতেই থাকবে।
৭. while Loop-এর Flowchart
while loop-এর ক্ষেত্রে condition প্রথমে check করা হয়। যদি condition true হয়, তাহলে loop body execute হয়। এরপর আবার condition check হয়। condition false হলে loop terminate হয়।
True?
৮. Infinite Loop
যদি while loop-এর condition কখনো false না হয়, তাহলে loop অনন্তকাল চলতে থাকে। এটাকে Infinite Loop বলা হয়। Infinite loop সাধারণত ভুল logic-এর কারণে হয়।
ভুল Example:
count = 1
while count <= 5:
print(count)
এখানে count update করা হয়নি। তাই count সবসময় 1 থাকবে এবং condition সবসময় true থাকবে।
ফলে loop কখনো stop হবে না।
সঠিক Example:
count = 1
while count <= 5:
print(count)
count = count + 1
৯. break Statement
break statement loop-কে immediately stop করে দেয়।
যখন কোনো নির্দিষ্ট condition পূরণ হলে loop আর চালানোর দরকার নেই, তখন break ব্যবহার করা হয়।
Example: ৫ পেলে loop বন্ধ
for i in range(1, 10):
if i == 5:
break
print(i)
Output:
1
2
3
4
এখানে i == 5 হলে break execute হয় এবং loop stop হয়ে যায়।
তাই 5 print হয় না।
Real-life Example: Search operation
numbers = [10, 20, 30, 40, 50]
search = 30
for num in numbers:
if num == search:
print("Number found")
break
এখানে list-এর মধ্যে search value পাওয়া গেলে loop আর চালানোর দরকার নেই। তাই break ব্যবহার করা হয়েছে।
১০. continue Statement
continue statement current iteration skip করে loop-এর next iteration-এ চলে যায়।
অর্থাৎ loop পুরোপুরি বন্ধ হয় না, শুধু নির্দিষ্ট iteration-এর বাকি code execute হয় না।
Example: ৩ skip করা
for i in range(1, 6):
if i == 3:
continue
print(i)
Output:
1
2
4
5
এখানে i == 3 হলে continue execute হয়।
তাই 3 print হয় না, কিন্তু loop continue করে 4 এবং 5 print করে।
Example: Odd number skip করে Even print করা
for i in range(1, 11):
if i % 2 != 0:
continue
print(i)
এখানে odd number হলে current iteration skip হচ্ছে। ফলে শুধু even number print হচ্ছে।
১১. break এবং continue-এর পার্থক্য
| Statement | কাজ | Loop-এর উপর প্রভাব | Example Use |
|---|---|---|---|
break |
Loop পুরোপুরি বন্ধ করে | Loop থেকে বের হয়ে যায় | Search value পাওয়া গেলে loop stop |
continue |
Current iteration skip করে | Loop চালু থাকে, next iteration-এ যায় | Specific value skip করা |
১২. Nested Loops
একটি loop-এর ভিতরে আরেকটি loop থাকলে তাকে Nested Loop বলা হয়। Nested loop সাধারণত pattern printing, matrix processing, table generation এবং multi-dimensional data handle করার জন্য ব্যবহার করা হয়।
Outer loop একবার execute হলে inner loop সম্পূর্ণভাবে execute হয়। এরপর outer loop-এর next iteration শুরু হয় এবং inner loop আবার execute হয়।
Syntax:
for i in range(outer_limit):
for j in range(inner_limit):
statement
Example: Nested Loop
for i in range(1, 4):
for j in range(1, 4):
print(i, j)
Output:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
এখানে outer loop-এর প্রতিটি value-এর জন্য inner loop তিনবার execute হচ্ছে।
১৩. Suggested Program ১: Pattern Generate করা
Pattern printing nested loops বোঝার জন্য খুব useful। এখানে outer loop সাধারণত row control করে এবং inner loop column বা star print করে।
Program: Star Pattern
rows = int(input("কত row চান? "))
for i in range(1, rows + 1):
for j in range(1, i + 1):
print("*", end=" ")
print()
Sample Output যদি rows = 5 হয়:
*
* *
* * *
* * * *
* * * * *
Explanation:
- User থেকে row সংখ্যা input নেওয়া হয়েছে।
- Outer loop row control করছে।
- Inner loop প্রতিটি row-তে কতগুলো star print হবে তা control করছে।
end=" "ব্যবহার করা হয়েছে যাতে stars একই line-এ print হয়।- Inner loop শেষ হলে
print()নতুন line তৈরি করছে।
Number Pattern:
rows = int(input("কত row চান? "))
for i in range(1, rows + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()
Sample Output:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
১৪. Suggested Program ২: Summation of Series
Series-এর summation বের করা loop-এর একটি common use case। যেমন 1 + 2 + 3 + ... + n-এর sum বের করতে loop ব্যবহার করা যায়।
Program: 1 থেকে n পর্যন্ত যোগফল
n = int(input("n-এর মান লিখুন: "))
total = 0
for i in range(1, n + 1):
total = total + i
print("Series-এর যোগফল:", total)
Example:
n = 5
Series = 1 + 2 + 3 + 4 + 5
Sum = 15
Explanation:
- User থেকে
ninput নেওয়া হয়েছে। totalinitially 0 রাখা হয়েছে।- Loop 1 থেকে n পর্যন্ত চলছে।
- প্রতিবার current value
total-এর সাথে যোগ হচ্ছে। - Loop শেষ হলে final sum print হচ্ছে।
Program: Even numbers-এর summation
n = int(input("n-এর মান লিখুন: "))
total = 0
for i in range(2, n + 1, 2):
total = total + i
print("Even numbers-এর যোগফল:", total)
এখানে range(2, n + 1, 2) ব্যবহার করে 2 থেকে n পর্যন্ত only even numbers generate করা হয়েছে।
১৫. Suggested Program ৩: Positive Number-এর Factorial বের করা
কোনো positive integer n-এর factorial হলো 1 থেকে n পর্যন্ত সব number-এর multiplication।
Factorial সাধারণত n! দিয়ে প্রকাশ করা হয়।
Example:
5! = 5 × 4 × 3 × 2 × 1 = 120
Program: for loop ব্যবহার করে Factorial
n = int(input("একটি positive number লিখুন: "))
factorial = 1
if n < 0:
print("Negative number-এর factorial হয় না")
elif n == 0:
print("0-এর factorial হলো 1")
else:
for i in range(1, n + 1):
factorial = factorial * i
print(n, "এর factorial হলো:", factorial)
Explanation:
- User থেকে একটি number input নেওয়া হয়েছে।
- যদি number negative হয়, তাহলে factorial possible নয়।
- যদি number 0 হয়, তাহলে factorial 1।
- Positive number হলে loop 1 থেকে n পর্যন্ত চলবে।
- প্রতিবার current value factorial-এর সাথে multiply হবে।
- শেষে factorial print হবে।
Program: while loop ব্যবহার করে Factorial
n = int(input("একটি positive number লিখুন: "))
factorial = 1
i = 1
if n < 0:
print("Negative number-এর factorial হয় না")
else:
while i <= n:
factorial = factorial * i
i = i + 1
print(n, "এর factorial হলো:", factorial)
১৬. Suggested Program ৪: Multiplication Table
Loop ব্যবহার করে কোনো number-এর multiplication table খুব সহজে generate করা যায়।
num = int(input("কোন সংখ্যার নামতা চান? "))
for i in range(1, 11):
print(num, "x", i, "=", num * i)
Sample Output যদি num = 5 হয়:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
১৭. Suggested Program ৫: Prime Number Check
Prime number হলো এমন সংখ্যা যা 1 এবং নিজের সংখ্যা ছাড়া অন্য কোনো সংখ্যা দিয়ে divisible নয়। যেমন 2, 3, 5, 7, 11 prime numbers।
num = int(input("একটি সংখ্যা লিখুন: "))
if num <= 1:
print(num, "Prime number নয়")
else:
is_prime = True
for i in range(2, num):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, "Prime number")
else:
print(num, "Prime number নয়")
এখানে loop 2 থেকে num-1 পর্যন্ত check করছে number divisible কিনা।
যদি কোনো divisor পাওয়া যায়, তাহলে break দিয়ে loop stop করা হচ্ছে।
১৮. for Loop এবং while Loop-এর পার্থক্য
| বিষয় | for Loop | while Loop |
|---|---|---|
| ব্যবহার | যখন iteration count বা sequence জানা থাকে | যখন condition true থাকা পর্যন্ত loop চালাতে হয় |
| Common Use | range, list, string, tuple iterate করা | User input validation, condition-based repetition |
| Control | Sequence automatically next value দেয় | Condition এবং variable update manually manage করতে হয় |
| Infinite Loop Risk | সাধারণত কম | Update ভুল হলে বেশি |
১৯. Common Mistakes in Iterative Statements
- Colon ভুলে যাওয়া:
forএবংwhile-এর শেষে colon:দিতে হয়। - Indentation ভুল করা: Loop body অবশ্যই indent করে লিখতে হবে।
- Infinite loop তৈরি করা: while loop-এ variable update না করলে loop stop হবে না।
- range-এর stop value ভুল বোঝা:
range(1, 5)1 থেকে 4 পর্যন্ত চলে, 5 include হয় না। - break ও continue confuse করা: break loop বন্ধ করে, continue শুধু current iteration skip করে।
- Nested loop-এ indentation ভুল: Inner loop এবং outer loop-এর block clearly আলাদা রাখতে হবে।
Wrong Example:
for i in range(5)
print(i)
এখানে for statement-এর শেষে colon নেই, তাই SyntaxError হবে।
Correct Example:
for i in range(5):
print(i)
২০. Complete Example: Loop, break, continue এবং nested loop
নিচের program-এ loop, condition, break, continue এবং nested loop-এর ব্যবহার একসাথে দেখানো হয়েছে।
limit = int(input("কত পর্যন্ত number check করবেন? "))
for i in range(1, limit + 1):
if i == 5:
continue
if i > 15:
break
print("Number:", i)
print("Pattern:")
for row in range(1, 4):
for col in range(1, row + 1):
print("*", end=" ")
print()
Explanation:
- প্রথম loop 1 থেকে limit পর্যন্ত চলার চেষ্টা করে।
- যদি number 5 হয়, তাহলে
continuecurrent iteration skip করে। - যদি number 15-এর বেশি হয়, তাহলে
breakloop বন্ধ করে দেয়। - এরপর nested loop ব্যবহার করে star pattern print করা হয়েছে।
উপসংহার
Iterative statements Python programming-এর একটি অত্যন্ত গুরুত্বপূর্ণ concept।
for loop sequence বা range-এর উপর repeat করার জন্য ব্যবহার করা হয়, আর while loop condition true থাকা পর্যন্ত repeat করার জন্য ব্যবহৃত হয়।
range() function numeric sequence তৈরি করতে সাহায্য করে এবং loop-এর সাথে খুব বেশি ব্যবহৃত হয়।
break statement loop বন্ধ করে, continue current iteration skip করে, এবং nested loops pattern printing, table generation ও matrix processing-এর মতো কাজ করতে সাহায্য করে।
Pattern generation, summation of series এবং factorial calculation-এর মতো programs loop-এর practical use বুঝতে খুব সহায়ক।
Python-এ loops ভালোভাবে বুঝতে পারলে আপনি data processing, automation, mathematical calculation, pattern printing, searching, validation এবং real-world application development সহজে করতে পারবেন। তাই beginner programmer-এর জন্য iterative statements ভালোভাবে practice করা অত্যন্ত জরুরি।