লুপ

প্রোগ্রামিং এর ভাষায়, একটি লুপ হল একটি স্টেটমেন্ট যা একটি নির্দিষ্ট শর্তে না পৌঁছানো পর্যন্ত ক্রমাগত ইটারেশন হয়।

যখন একটি টাস্ক বহুবার ইটারেশন করতে হয়, তখন লুপের ব্যবহার আমাদেরকে অপ্রয়োজনীয় কোড দূর করতে সাহায্য করে। লুপ ব্যবহার করে আমরা বহুলাইন কোডকে ছোট করতে পারি। ধরুন আপনি **”Hello, World!”** লেখাটি প্রিন্ট করতে চান 10 বার। 10 বার print স্টেটমেন্ট লেখার পরিবর্তে, আপনি  ইটারেশনের সংখ্যা নির্দেশ করে লুপ ব্যবহার করতে পারেন।

for i in range(10):
    print("Hello, World!")

আউটপুট

## output
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

 

পাইথন প্রোগ্রামিংয়ে দুই ধরনের লুপ আছে:
> * while লুপ
> * for লুপ

while লুপ
প্রদত্ত শর্তটি সত্য না হওয়া পর্যন্ত এটি ক্রমাগত স্টেটমেন্ট কার্যকর করে। এটি প্রথমে শর্তটি পরীক্ষা করে এবং তারপর নির্দেশাবলী সম্পন্ন করে।
পাইথনে while লুপের সিনট্যাক্সঃ

while condition:
    statements(code)

while লুপের ভিতরে, আমাদের যেকোনো সংখ্যক স্টেটমেন্ট থাকতে পারে। শর্ত আমাদের প্রয়োজন অনুযায়ী যা কিছু হতে পারে। শর্তটি মিথ্যে হলে লুপ চলা বন্ধ হয়ে যায়, এবং কোডের পরবর্তী লাইন এক্সিকিউশন হয়।

count = 5
while count > 0:
    print(count)
    count -= 1

print('Loop ended.')

আউটপুট

## output
5
4
3
2
1
Loop ended.

 

উপরের উদাহরণ থেকে দেখা যায় যে আমরা একটি while লুপ লেখেছি যা দিয়ে আমাদের ৫ থেকে ১ পর্যন্ত সব ভ্যালু গুলো প্রিন্ট করে দিয়েছে।

for লুপ
for লুপ ব্যবহৃত হয় লিস্ট, টাপল, টাইপ, ডিকশনারি, সেট, এমনকি স্ট্রিং-এর মতো ক্রম ইটারেট করতে।
সিকোয়েন্সের প্রতিটি আইটেমের জন্য লুপ স্টেটমেন্ট কার্যকর করা হবে।

পাইথনে for লুপের সিনট্যাক্সঃ

for item in iterable_oject:
    statements(item)

 

এখানে iterable_object হতে পারে একটি লিস্ট, টাপল, সেট ইত্যাদি.. ডাটা টাইপের অবজেক্ট।
এখানে একটি টপোল অবজেক্ট এর উপর লুপ চালানোর উদাহরণ দেখা যাক :

for x in ('foo', 'bar', 'baz'):
    print(x)

আউটপুট

## output
foo
bar
baz

এখানে একটি সেট অবজেক্ট এর উপর লুপ চালানোর উদাহরণ দেখা যাক :

for i in {'foo', 'bar', 'baz'}:
    print(i)

আউটপুট

## output
foo
bar
baz

এখানে একটি ডিকশনারি অবজেক্ট এর উপর লুপ চালানোর উদাহরণ দেখা যাক :

for key, value in {'foo': 1, 'bar': 2, 'baz': 3}.items():
    print(key, value)

 

আউটপুট

## output
foo 1
bar 2
baz 3

 

এখানে একটি string অবজেক্ট এর উপর লুপ চালানোর উদাহরণ দেখা যাক :

for i in 'foobar':
    print(i)

 

আউটপুট

## output
f
o
o
b
a
r

 

** নিউমেরিক রেঞ্জ ** লুপের উদাহরণ:

for i in range(10):
    print(i)

আউটপুট

## output
1
2
3
4
5
6
7
8
9

 

নেস্টেড লুপ
নেস্টেড লুপ মানে একটি লুপের ভিতরে আরেকটি লুপ ব্যবহার করা। আমরা যেকোন ধরনের লুপের ভিতরে যে কোন ধরনের লুপ ব্যবহার করতে পারি। আমরা for লুপের ভিতরে while লুপ, while লুপের ভিতরে for লুপ, while লুপের ভিতরে while লুপ, অথবা for লুপের ভিতরে for লুপ ব্যবহার করতে পারি।
পাইথনে নেস্টেড লুপের সিনট্যাক্সঃ

while condition:
    while condition:
        statements(code)
        statements(code)

 

লুপ কন্ট্রোল স্টেটমেন্ট
লুপ কন্ট্রোল স্টেটমেন্টগুলি একটি লুপের প্রবাহ পরিবর্তন করতে ব্যবহৃত হয়। আপনি একটি ইটারেশন এড়িয়ে যেতে বা বন্ধ করতে চাইলে এগুলি ব্যবহার করা যেতে পারে।

তিন ধরনের লুপ কন্ট্রোল স্টেটমেন্ট হল:
> * Break স্টেটমেন্ট
> * Continue স্টেটমেন্ট
> * Pass স্টেটমেন্ট

Break স্টেটমেন্ট
প্রদত্ত কন্ডিশনের উপর ভিত্তি করে, Break স্টেটমেন্ট লুপের প্রক্রিয়া বন্ধ করে এবং লুপের বাইরে নিয়ে আসে।
উদাহরণ: num = 5 হলে লুপের প্রক্রিয়া বন্ধ করো

for num in range(1, 11):
    if num == 5:
        break
print(num)

আউটপুট

## output
1
2
3
4

 

Continue স্টেটমেন্ট

শর্ত পূরণ হলে Continue স্টেটমেন্টটি বর্তমান ইটারেশন এড়িয়ে যাওয়ার জন্য ব্যবহৃত হয় এবং লুপটিকে পরবর্তী ইটারেশনের সাথে চালিয়ে যাওয়ার অনুমতি দেয়। এটি ব্রেক স্টেটমেন্টের মত লুপের বাইরে নিয়ে আসে না।
উদাহরণ: num = 6 হলে ইটারেশনটি এড়িয়ে যাও

for num in range(1, 11):
    if num == 6:
        continue
print(num)

আউটপুট

## output
1
2
3
4
5
7
8
9
10

 

Pass স্টেটমেন্ট
পাস স্টেটমেন্ট ব্যবহার করা হয় যখন শর্ত পূরণ হলে আমরা কিছুই করতে চাই না। এটি এড়িয়ে যায় না বা বন্ধ করে না, এটি কেবল পরবর্তী পুনরাবৃত্তিতে চলে যায়। পাস স্টেটমেন্ট লুপ, ফাংশন, ক্লাস ইত্যাদির সাথে ব্যবহার করা যেতে পারে।
এটি ব্যবহৃত হয় যখন আমরা বর্তমানে functionality না লিখে ভবিষ্যতের সেই functionality কার্যকর করার জন্য কিছু কমেন্ট করে রাখি।
উদাহরণ: num = 6 হলে ইটারেশনটি pass করো

for num in range(1, 11):
    if num == 6:
        pass
print(num)

 

আউটপুট

## output
1
2
3
4
5
6
7
8
9
10

 

Loop এর সাথে else

পাইথনে আমরা if else দেখেছি। অর্র্থাৎ if এর মধ্যকার কন্ডিশন না মানলে else ব্লক এর মধ্যে প্রোগ্রাম এর অন্যান্য কাজ করতে পারি। তেমনি ভাবে লুপের সাথেও আমরা else ব্লক ব্যবহার করতে পারি।

i = 10;
for i in range(10):
    print(i)
else:
    print("Loop Over")

এখানে for লুপে else স্টেটমেন্ট ব্যবহার করলে, যখন for লুপের কন্ডিশনটা মিথ্যা হবে তখনই else ব্লক এর লেখা কোডগুলো এক্সিকিউট হওয়া শুরু করবে।

Output

0
1
2
3
4
5
6
7
8
9
Loop Over

 

উদাহরন
 1 + 2 + 3 + ….. + N
n = int(input("Enter the terminate number : "))


total = 0
for i in range(1,n+1):
total = total + i


print(f"Total is {total}")

 

Prime or not prime
num = 19
flag = False
if num > 1:
    for i in range(2,num):
        if(num % i) == 0:
            break
if flag:
    print(num,"is not a prime number")
else:
    print(num,"is a prime number")

 

*
**
***
****
*****
Write a code that will output the above pattern
n = int(input("Enter a number : "))


for i in range(1,n+1):
    for j in range(1, i+1):
        print("*", end="")
print("")

 

Count number of odd numbers from 0 to 9999
count = 0
for j in range(10000):
    if j%2:
        count = count + 1
print(count)

 

Print all characters from a string

s = "vivasoft"
for single_char in s:
    print(single_char)

 

এসো নিজে করি
 
১। নিচের প্যাটার্র্ন টি বের করুন।
 
*****
****
***
**
*
২। ১৯৯০ থেকে ২০২২ সাল পর্যন্ত কয়টি লিপ-ইয়ার বের করুন।
৩। Armstrong Number বের করার কোড করুন।
৪। Perfect Number বের করার কোড করুন।
৫। দুইটি (2D array) এর যোগফল বের করুন । Array গুলোর ভ্যালু ইউজার ইনপুট দিবে ।
ইন্টারভিউ প্রশ্নোত্তর
গুরুত্বপূর্ন প্রশ্নসমুহ
* range() এর কাজ কি ?
* ১ থেকে ১০০ পর্যন্ত জোড় সংখ্যা বের করার জন্য কতভাবে লুপ চালানো যাবে এবং কি কি ?
* ইনফিনিট লুপ কিভাব চালানো যাবে ?
* 5+10+15+…+N এই ধারাটি লুপের মাধ্যমে বের করুন ।
* ১ থেকে ১০০ এর মধ্যে কতগুলো প্রাইম নাম্বার আছে এবং কি কি , লুপের মাধ্যমে বের করুন ।