ফর লুপে range() ফাংশন ও else এর ব্যবহার

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 29 এপ্রি., 2024


ফর লুপে range() ফাংশন ও else এর  ব্যবহার

যদি আমরা নাম্বারের সিকোয়েন্স (যেমন: 1, 2, 3, 4, 5 ……) এর উপর  ফর লুপ চালাতে চাই তাহলে range() ফাংশন ব্যবহার করতে পারি। এই ফাংশনের মধ্যে (প্যারামিটার হিসেবে) যে নাম্বার (সংখ্যা) দেয়া হয়, এটি তার চেয়ে একবার কম এক্সিকিউট হয়। range() ফাংশন এর নিম্নলিখিত ফরমেটগুলি ব্যবহৃত হয়:

 

এখন আমরা উপরের সবগুলো ফরমেট উদাহারণসহ আলোচনা করব, এবং সাথে সাথে ‘ফর লুপে else এর ব্যবহার’ দেখব।

ফরমেট ১: for ইটারেটরের নাম in range(number):

কোড:

for number in range(4):

    print(number)

else:

    print('out of for loop')

 

এখন কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

0

1

2

3

out of for loop

উপরের কোডের প্রথম লাইনে আমি একটি ফর লুপ ডিফাইন করেছি, এবং range() ফাংশনের মধ্যে 4 দিয়েছি, যার অর্থ হলো: লুপটি চারবার চলবে, তবে এর কাউন্টিং শুরু হবে 0 থেকে (0 থেকে 3 পর্যন্ত)। তখন ইটারেটর, number এর ভ্যালু হবে একে একে ৪ টি (সুতরাং ইটারেশন সংখ্যা চার):

যখন number = 0, তখন 0 প্রিন্ট হবে, (প্রিন্টের কাজটি দ্বিতীয় লাইনে হবে),    || ফার্স্ট ইটারেশন,

যখন number = 1, তখন 1 প্রিন্ট হবে,              || সেকেন্ড ইটারেশন,

 যখন number = 2, তখন 2 প্রিন্ট হবে,             || থার্ড ইটারেশন,

এবং যখন number = 3, তখন 3 প্রিন্ট হবে,       || ফোর্থ ইটারেশন,

চারটি নাম্বার (0, 1, 2, 3, 4) শেষ হবার পরে range() ফাংশনের রেঞ্জ শেষ হয়ে যাবে এবং তখন প্রোগ্রাম এক্সিকিউশন ফর লুপ থেকে বের হয়ে else ব্লকে ঢুকে পরের লাইন (চতুর্থ লাইনটি) প্রিন্ট হবে।

নোট: সাধারণ ‘if-else’ আর ‘for loop-else’ এর মধ্যে পার্থক্য হলো: ‘if-else’ এর ক্ষেত্রে if ব্লক এক্সিকিউট হলে else ব্লক এক্সিকিউট হয় না, দুটি ব্লকের যেকোন একটি এক্সিকিউট হয়। কিন্তু ‘for loop-else’ এর ক্ষেত্রে for এর অধীনে স্টেটমেন্ট এক্সিকিউট হওয়ার পরে else ব্লক এক্সিকিউট হয়, অর্থাৎ for এবং else উভয় ব্লক এক্সিকিউট হয়।

 

ফরমেট ২: for ইটারেটরের নাম in range( শুরু নাম্বার, শেষ নাম্বার ):

 

কোড:

for number in range(10,14):

    print(number)

else:

    print('out of for loop')

 

এখন কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

10

11

12

13

out of for loop

 

উপরের কোডের প্রথম লাইনে আমি একটি ফর লুপ ডিফাইন করেছি, এবং range() ফাংশনের মধ্যে 10, 14 দিয়েছি (10 শুরু এবং 14 শেষ নির্দেশ করে), যার অর্থ হলো: লুপটি চারবার চলবে, তবে এর কাউন্টিং শুরু হবে 10 থেকে (10 থেকে 14 পর্যন্ত)। তখন ইটারেটর, number এর ভ্যালু হবে একে একে ৪ টি (সুতরাং ইটারেশন সংখ্যা চার):

যখন number = 10, তখন 10 প্রিন্ট হবে, (প্রিন্টের কাজটি দ্বিতীয় লাইনে হবে), ||ফার্স্ট ইটারেশন,

যখন number = 11, তখন 11 প্রিন্ট হবে,                     || সেকেন্ড ইটারেশন,

 যখন number = 12, তখন 12 প্রিন্ট হবে,                    || থার্ড ইটারেশন,

এবং যখন number = 13, তখন 13 প্রিন্ট হবে,              || ফোর্থ ইটারেশন,

চারটি নাম্বার (10, 11, 12, 13) শেষ হবার পরে range() ফাংশনের রেঞ্জ শেষ হয়ে যাবে এবং তখন প্রোগ্রাম এক্সিকিউশন ফর লুপ থেকে বের হয়ে else ব্লকে ঢুকে পরের লাইন (চতুর্থ লাইনটি প্রিন্ট হবে)।

 

ফরমেট ৩: for ইটারেটরের নাম in range( শুরু নাম্বার, শেষ নাম্বার, বৃদ্ধি ):

 

কোড:

for number in range(5,10,2):

    print(number)

else:

    print('out of for loop')

 

এখন কোডটি রান করলে নিচের মত আউটপুট পাব।

আউটপুট:

5

7

9

out of for loop

উপরের কোডের প্রথম লাইনে আমি একটি ফর লুপ ডিফাইন করেছি, এবং range() ফাংশনের মধ্যে 5, 10, 2 দিয়েছি (5 শুরু, 10 শেষ এবং 2 বৃদ্ধি নির্দেশ করে), যার অর্থ হলো: লুপটি তিনবার চলবে, তবে এর কাউন্টিং শুরু হবে 5 থেকে (5 থেকে 9 পর্যন্ত), এবং প্রত্যেকবারে দুই করে বাড়বে। তখন ইটারেটর, number এর ভ্যালু হবে একে একে তিনটি (সুতরাং ইটারেশন সংখ্যা তিন):

যখন number = 5, তখন 5 প্রিন্ট হবে, (প্রিন্টের কাজটি দ্বিতীয় লাইনে হবে),    || ফার্স্ট ইটারেশন,

যখন number = 7, তখন 7 প্রিন্ট হবে,                         || সেকেন্ড ইটারেশন,

এবং যখন number = 9, তখন 9 প্রিন্ট হবে,                  || থার্ড ইটারেশন,

তিনটি নাম্বার (5, 7, 9) শেষ হবার পরে range() ফাংশনের রেঞ্জ শেষ হয়ে যাবে এবং তখন প্রোগ্রাম এক্সিকিউশন ফর লুপ থেকে বের হয়ে else ব্লকে ঢুকে পরের লাইন (চতুর্থ লাইনটি প্রিন্ট হবে)। এখন কোডটি রান করলে নিচের মত আউটপুট পাব।

 

ফরমেট ৪: for ইটারেটরের নাম in range( শুরু নাম্বার, শেষ নাম্বার, হ্রাস ):

 

কোড:

for number in range(10,5, -2):

    print(number)

else:

    print('out of for loop')

আউটপুট:

10

8

6

out of for loop

 

উপরের কোডের প্রথম লাইনে আমি একটি ফর লুপ ডিফাইন করেছি, এবং range() ফাংশনের মধ্যে 10, 5, -2 দিয়েছি (10 শুরু, 5 শেষ এবং -2 হ্রাস নির্দেশ করে), যার অর্থ হলো: লুপটি তিনবার চলবে, তবে এর কাউন্টিং শুরু হবে 10 থেকে (10 থেকে 6 পর্যন্ত), এবং প্রত্যেকবারে দুই করে কমবে। তখন ইটারেটর, number এর ভ্যালু হবে একে একে তিনটি (সুতরাং ইটারেশন সংখ্যা তিন):

যখন number = 10, তখন 10 প্রিন্ট হবে (প্রিন্টের কাজটি দ্বিতীয় লাইনে হবে), || ফার্স্ট ইটারেশন,

যখন number = 8, তখন 8 প্রিন্ট হবে,                         || সেকেন্ড ইটারেশন,

এবং যখন number = 6, তখন 6 প্রিন্ট হবে,                  || থার্ড ইটারেশন,

তিনটি নাম্বার (10, 8, 6) শেষ হওয়ার পরে range() ফাংশনের রেঞ্জ শেষ হয়ে যাবে এবং তখন প্রোগ্রাম এক্সিকিউশন ফর লুপ থেকে বের হয়ে else ব্লকে ঢুকে পরের লাইনটি (চতুর্থ লাইনটি) প্রিন্ট হবে। এখন কোডটি রান করলে নিচের মত আউটপুট পাব।