Site icon Trickbd.com

পাইথন প্রোগ্রামিং – লুপ – পর্ব ১১ – ১ম খণ্ড – হোয়াইল লুপ

Unnamed

আজকে আপনাদের জন্য সারপ্রাইজ আছে। আমি, এখন আপনাদের একটা প্রব্লেম দেখাবো।


প্রব্লেম-১ ঃ- এমন একটা প্রোগ্রাম লিখুন যেখানে ইউজার একটা সংখ্যা ইনপুট দিবে। যদি, সংখ্যাটা জোড় হয় তাহলে প্রিন্ট করবেন “Even” অন্যথায় “Odd” ।


মানে, ইউজার যদি ইনপুট দেই ৪ তাহলে প্রিন্ট হবে “Even” আর যদি ইনপুট দেই ধরুন ৭ তাহলে প্রিন্ট হবে “Odd” । আগামী পর্বে থাকবে এটার সল্যুশন।



হোয়াইল লুপ

আচ্ছা, ধরুন আমরা একটা প্রোগ্রাম বানাবো যেটা ১ থেকে ৫ অবধি প্রত্যেক সংখ্যা প্রিন্ট করবেন।

কি করবেন তাহলে?? খুব সহজ তাই না?? আপনি নিচের মত করে করবেন ….


print(1)
print(2)
print(3)
print(4)
print(5)

কিন্তু, যদি বলি ১ থেকে ৬০০ অবধি লিখতে তাহলে??

লেখা শুরু করে দিবেন এরকম?? সেটা মনে হয় করা ঠিক হবে না। কি বলেন??


হ্যাঁ!! ঠিক এজনই পাইথনে একটা নতুন অধ্যায় তৈরি হয়েছে পাইথন লুপ নামে।

লুপ মানে ডিকশোনারিতে দেখলাম লেখা “ফাঁস”।


আসলে সেটাই লুপ হল ফাস এখানে কন্ডিশন এর উপর নির্ভর করে কোন কাজ বার বার করা হয়।

আর এই লুপ হয় দুই ধরনের। এক হল “হোয়াইল লুপ – While Loop” এবং অন্যটা হল “ফর লিপ – For Loop“।


এই খন্ডে আমরা আলোচনা করব পাইথন এর হোয়াইল লুপ নিয়ে।

আপনি এই হোয়াইল লুপ শেষ করতে পারলেই পাইথন ব্যাসিক এর ৮০% শেষ করে ফেলবেন!! তাহলে চলুন নিচের কোডটুকু আগে দেখিঃ—–


number = 1
while number != 10:
    print(number)
    number = number + 1
print('Loop is complete")

ওই কোডটুকু লিখে রান করে দেখুন তো কি হয়?? দেখেছেন ১ থেকে ৯ পর্যন্ত প্রিন্ট হয়েছে তাই না??

এবার একটু ব্যাখ্যাতে যায়ঃ–


number –> ভ্যারিয়েবল


1 —-> number ভ্যারিয়েবলের ভ্যালু।


while —> অর্থ যতক্ষণ


number != 10 —> number ভ্যারিয়েবলের মান বা ভ্যালু ১০ না।


print(number) —-> number ভ্যারিয়েবল প্রিন্ট করো।


number = number + 1  —-> number ভ্যারিয়েবলের সাথে ১ যোগ করে সেটা আবার number ভ্যারিয়েবলে রাখো।


print(‘Loop is complete”) —> এটা লুপ এর বাইরের কোড।


উপরের কাজ গুলো তো বুঝলেন এবার কোড টুকু বাংলায় দেখা যাক।


নাম্বার = ১
যতক্ষণ নাম্বার ১০ নয়ঃ
প্রিন্ট করো নাম্বার
নাম্বার এর সাথে ১ যোগ করে আবার নাম্বার ভ্যারিয়েবলে রাখো।

উপরের কাজটাই করলাম আমরা। প্রথমে নাম্বার ভ্যারিয়েবলে ১ রাখি।


তারপর যতক্ষণ না নাম্বার এর ভ্যালু ১০ হয় ততক্ষণ নাম্বার ভ্যারিয়েবল প্রিন্ট করি।

এখন নাম্বার ভ্যারিয়েবলের সাথে ১ যোগ করে সেটা আবার নাম্বার ভ্যারিয়েবলে রাখি।


অর্থাৎ, প্রথমে নাম্বার এর ভ্যালু ১। এখন চেক করো নাম্বার কি ১০ এর সমান নয়।

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


তাহলে, নাম্বার ভ্যারিয়েবল এর মান হবে ২।

এখন আবার চেক যদি নাম্বার ভ্যারিয়েবল ১০ এর সমান না হয় তাহলে নাম্বার ভ্যারিয়েবল প্রিন্ট করো এবং তার সাথে ১ যোগ করে দাও।


এখন তাহলে নাম্বার ভ্যারিয়েবলের মান ৩। এভাবে চলতে থাকবে।


যখন নাম্বার ভ্যারিয়েবল এর মান ১০ এর সমান হয়ে যাবে তখন লুপ থেমে যাবে। এবং লুপ এর বাইরের কোড রান হবে।


এখানে বাইরে কোড হলো ওই print(“Loop is complete”) এই লাইন। লুপ শেষ হওয়ার পরেই এই লাইনটা প্রিন্ট হয়েছে।


বুঝলেন?? না বুঝলে আবার পড়েন আবার পড়েন আবারো পড়েন।

আমার অনেক বেশি সময় লেগেছিল শুধু এই হোয়াইল লুপ বুঝতে। এটা খুব গুরত্তপুর্ণ একটা বিষয়।


এখন তাহলে আরো কিছু শেখা যাক।


অসীম লুপ বা Infinite loop :-


অসীম কি তা তো জানেনই নিশ্চয়। যার কোন সীমা নেই বা শেষ নেই শুধু শুরু আছে। সেটাই হল অসীম। লুপেও একটা অসীম লুপ আছে। আগে কোড দেখি।


a = 1
while a >= 1:
    print(a)
    a = a + 1

উপরের কোড টুকু রান করে দেখুন কি হল??? থামছেই না তাই তো??

কীবোর্ডের Ctrl+C চাপুন থেমে যাবে। এটা আসলে থামা নয় রান করানোটা জোর করে থামানো।


আসলে এটার কোন সীমা নেই এটা অসীম।


কারণ, প্রত্যেক বার আমরা a ভ্যারিয়েবলের সাথে করে যোগ করেছি এবং বলেছি যতক্ষণ a এর ভ্যালু থেকে বড় হবে অথবা সমান হবে ততক্ষণ a ভ্যারিয়েবল প্রিন্ট করবে।


এবং কখনোই এই শর্ত মিথ্যা হবে না তাই লুপ অসীম পর্যন্ত চলবে। এখানে সবসময় a এর মান 1 থেকে বড় হচ্ছে। শুধু প্রথমবারে সমান ছিল।


আচ্ছা বুঝলেন কিছু?? না বুঝলে পড়ুন আবার আর তাও না বুঝলে কমেন্টে জানান। আগামী পর্বে আবার বুঝিয়ে দেবো।


এখন আমরা একটা প্রোগ্রাম লিখবো ১ থেকে ১০০ পর্যন্ত যোগ করবে। এটা করব প্রথমে একটা সুত্র এপ্লাই করব এবং তারপর লুপ দিয়ে করব।


number = 100
sub_result = number*(number+1)
result = sub_result/2
print(result)

এটা করলাম সুত্র দিয়ে। গণিতের বই এ তো এরকম সুত্র আছেই তাই না।

এবার এটা করব লুপ দিয়ে।


num = 1
res = 0
while num <= 100:
    res += num
    num += 1
print(res)

খুব সহজ তাই না?? চলুন এবার একটু আরো ব্যাখ্যা করি।

প্রথমে num নামের একটা ভ্যারিয়েবল ডিক্লেয়ার করে সেটার ভ্যালু দিয়েছি এবং আরো একটা ভ্যারিয়েবল res ডিক্লেয়ার করে সেটার ভ্যালু দিয়েছি


এখন হোয়াইল লুপে কন্ডিশন দিয়েছি যতক্ষণ num ১০০ থেকে ছোট অথবা সমান ততক্ষণ লুপ চলবে।

একবার চলার সময় res এর সাথে একটা num যোগ করবে। তারপর আবার num এর সাথে করে যোগ করব।


এরকম চলতে থাকবে অর্থাৎ প্রত্যেক টা সংখ্যা যোগ করবে। লুপ শেষ হলে আমরা print(res) দিয়ে ফলাফল আউটপুট দিয়েছি।


হোয়াইল লুপে আরো একটা কাজ করা যায় else । কি ভাবছেন এটা তো ইফ-এলস কন্ডিশন এ দেখেছিলেন তাই না!! তো আবার দেখি।


i = 5
while i <= 5:
    print(i)
    i -= 1
else:
    print('It is complete")

বুঝেছেন?? এখানে যখন হোয়াইল লুপ শেষ হবে তখন এলস ব্লকের কাজ হবে।


আচ্ছা, চলুন এখন একটা কাজ করা যাক। উপরের উদাহরণ গুলো নিজে অন্যরকম লিখ ফেলেন।

আজকের মত এখানেই আগামী পর্বে আবার আসব পাইথন প্রোগ্রামিং ফর লুপ নিয়ে। আর তারপরেই সেই কাঙ্খিত প্রজেক্ট এবং প্রব্লেম সল্ভিং।

আসসালামু আলাইকুম!! আমি শাহরিয়ার আহমেদ শোভন। ফেসবুকে আমাকে পাবেন https://facebook.com/shovon.0.ahmed




 

আরো ভালো আর্টিকেল পেতে চলে যান এই লিংক এ www.thebanglatech.xyz