Table of Contents

    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:

    • for loop
    • while loop
    • break statement
    • continue statement
    • 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 হয়।

    Start
    Sequence / range initialize
    Next value
    available?
    Yes
    Assign value to loop variable
    Execute loop body
    No
    Exit loop
    End

    ৬. 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 হয়।

    Start
    Initialize variable
    Condition
    True?
    Yes
    Execute loop body
    Update variable
    No
    Exit loop
    End

    ৮. 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
    Important: while loop ব্যবহার করার সময় অবশ্যই নিশ্চিত করতে হবে যে condition কোনো সময় false হবে। না হলে program আটকে যেতে পারে।

    ৯. 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:

    1. User থেকে row সংখ্যা input নেওয়া হয়েছে।
    2. Outer loop row control করছে।
    3. Inner loop প্রতিটি row-তে কতগুলো star print হবে তা control করছে।
    4. end=" " ব্যবহার করা হয়েছে যাতে stars একই line-এ print হয়।
    5. 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:

    1. User থেকে n input নেওয়া হয়েছে।
    2. total initially 0 রাখা হয়েছে।
    3. Loop 1 থেকে n পর্যন্ত চলছে।
    4. প্রতিবার current value total-এর সাথে যোগ হচ্ছে।
    5. 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:

    1. User থেকে একটি number input নেওয়া হয়েছে।
    2. যদি number negative হয়, তাহলে factorial possible নয়।
    3. যদি number 0 হয়, তাহলে factorial 1।
    4. Positive number হলে loop 1 থেকে n পর্যন্ত চলবে।
    5. প্রতিবার current value factorial-এর সাথে multiply হবে।
    6. শেষে 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:

    1. প্রথম loop 1 থেকে limit পর্যন্ত চলার চেষ্টা করে।
    2. যদি number 5 হয়, তাহলে continue current iteration skip করে।
    3. যদি number 15-এর বেশি হয়, তাহলে break loop বন্ধ করে দেয়।
    4. এরপর 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 করা অত্যন্ত জরুরি।