মনে আছে আগের পর্বে একটা একটা প্রব্লেম দিয়েছিলাম।


সেটা ছিল এরকম যে ইউজার একটা সংখ্যা ইনপুট দেবে এবং সেটা যদি জোড় হয় তাহলে প্রিন্ট হবে “Even” আর যদি বিজোড় হয় তাহলে প্রিন্ট হবে “Odd“।


আমরা কিন্তু জানি, যে সংখ্যাকে দিয়ে ভাগ দিলে কিছুই অবশিষ্ঠ থাকে না তাকে বলে জোড় এবং যদি অবশিষ্ঠ থাকে তাহলে হবে বিজোড়


তাহলে, আমাদের ভাগ দিয়ে দেখতে হবে। এই সমস্যাটা সমাধান করতে লাগবে আপনার শুধু কন্ডিশন এর জ্ঞান। এবং হালকা অপারেটর এর জ্ঞান।


কারা কারা পেরেছেন তারা একটু কমেন্টে জানিয়ে দিলে ভালো হয়।

এবার সল্যুশন দেখে নেই।


সমাধানঃ—


প্রথমেই ভাবতে হবে এখানে কি ধাপ আছে।


ধাপ-১ ঃ- ইউজার এর থেকে একটা ইনপুট নেয়া।


ধাপ-২ ঃ- সেটাকে ইন্টেজার এ কনভার্ট করা।


ধাপ-৩ ঃ- সেটাকে.২ দিয়ে ভাগ দিয়ে যদি কোন কিছু অবশিষ্ঠ না থাকে তাহলে সেটা হবে জোড় এবং প্রিন্ট দেবে “Even


ধাপ- ৪ঃ- আর যদি অবশিষ্ঠ থাকে তাহলে হবে বিজোড়। এবং প্রিন্ট হবে “Odd


এবার বুঝেছেন?? এখানে সমস্যা হল কিভাবে বুঝবো যে দিয়ে ভাগ দিলে কিছু অবশিষ্ঠ থাকে কি না।


এর জন্য আপনাকে একটু পর্ব ৯ এর অপারেটর এর কথা মনে করতে হবে।

সেখানে, একটা অপারেটর দেখেছিলেন যেটা দিয়ে ভাগশেষ বের করতে হয় মনে আছে??


কি বলুন তো?? হ্যাঁ, সেটা হচ্ছে %

চলুন এবার প্রোগ্রাম লিখে ফেলি।


user = input("Type a number:- ")
user = int(user)
if user % 2 == 0:
    print("Even")
else:
    print("Odd")

বুঝেছেন আশা করি। তবুও অল্প একটু ব্যাখ্যা দেয়া দরকার।

ইনপুট নেয়া তো বুঝেছেন। এখন কন্ডিশন দিয়েছি যদি ইউজারের ইনপুটকে ২ দিয়ে ভাগ দিলে ভাগশেষ == হয়, তাহলে প্রিন্ট হবে “Even“।


আর এটা ছাড়া অন্য কিছু হলেই হবে “Odd“। এটা খুব সহজ জিনিস।

এতো ব্যাখ্যা লাগবে না হয়তো।


চলুন!! শুরু করি আজকের মূল আলোচনা পাইথন ফর লুপ


এটা আমার খুব প্রিয় একটা কনসেপ্ট। এটার ক্ষমতা অনেক বেশি।

এই ফর লুপ কে আবার Iterator ও বলে।

ধরুন, আমরা একটা লিস্টের সবগুলো আইটেমকে একে একে প্রিন্ট করব। কি করা যায়??


a = ['Python', 'C', 'Java', 'R', 'Ruby', 'Perl']
for item in a:
    print(item)

এখানে শুধু আমরা একটা লিস্ট বানিয়েছি a ভ্যারিয়েবলের মধ্যে।

তারপর, নিচের লাইনে একটা ফর লুপ চালিয়েছি।


প্রথমে একটা for দিয়ে তারপর ইচ্ছামত যেকোন একটা নাম দিন যেমন আমি দিয়েছি item

তারপর কোথায় থেকে Iterate করবে সেটা দেখিয়ে দিচ্ছি। যেমন এখানে in দিয়ে a দিয়েছি যদি আপনার অন্য ভ্যারিয়েবল থাকে সেটা দিবেন।


তারপর কোলন দিয়ে নিচের লাইনে চারটা স্পেস সহ print(item) লিখতে হবে।

সাধারণত, এখন পাইথন এর কোড এডিটর অটমেটিক ইন্ডেনশন দিয়ে দেই তাই, আর আলাদা স্পেস দেয়া লাগে না। মোবাইলেও একই কথা।


ওখানে শুধু আমি লিস্ট দিয়ে দেখালাম আপনি সবধরনের ডাটা টাইপ দিয়ে চেক করুন।


এখন দেখবো range()


range() হল একটা কি বলব মেথড ধরেন। এর ভেতর আমরা একটা রেঞ্জ দিতে পারি।

আগে উদাহরণ দেখে নেই।


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

এখানে কিন্তু, থেকে পর্যন্ত প্রিন্ট দিয়েছি।


range(যেখানে থেকে গণনা শুরু হবে, যেখানে গিয়ে শেষ হবে)

আমরা প্রথমে দিয়েছি তাই থেকে গণনা শুরু হবে এবং কিছু না দিলে থেকে শুরু হবে।

আর শেষে যেটা দিবো সেটা হল শেষ হওয়ার রেঞ্জ।


তবে, এখানে ১০ দিলেও পর্যন্ত প্রিন্ট হল কারণ, আমরা যেটা দিবো তার থেকে কম পর্যন্ত প্রিন্ট হবে।

তাই, যেই পর্যন্ত প্রিন্ট করতে চাই তার থেকে বেশি দেব।


বুঝলেন?? না বুঝলে আগামী পর্বে আবার বোঝাবো।

আর, একটা জিনিস মনে আছে ঐযে লিস্ট বা টাপল এক্সেস করা। ওখানে যেমন করে থার্ড ব্র্যাকেট এর মাঝে আমরা রেঞ্জ দিয়েছিলাম এখানেই সেরকম দেয়া যায়।


এখনেও আপনি রেঞ্জ এর শুরু, শেষ, এবং স্কিপিং( মাঝে মাঝে বাদ দেয়া ) করতে পারবেন।


আচ্ছা, এখন কি শেখা যায়?? চলুন এখন আমরা শিখবো লুপ কন্ট্রো করা।


লুপ কে কন্ট্রোল না করলে কি করবে  বলা যায় না।

তাই, চলুন এখন একটা প্রোগ্রাম লিখি যেটা থেকে ১০ অবধি প্রিন্ট করবে।

কিন্তু যখনই সংখ্যাটা পাবে তখনই সেটাকে স্কিপ করে তার বদলে প্রিন্ট করবে ‘Five’ এবং তারপর আগের মতই চলতে থাকবে।


উদাহরণ দেখে নেই।


for i in range(1, 11):
    if i == 5:
        continue
        print('Five')
    print(i)

এই কোড টুকু লিখে রান করে আউটপুট দেখে নিন।

কি দেখলেন?? থেকে ১০ অবধি প্রিন্ট হয়েছে কিন্তু তার মাঝে নেই।। ভ্যানিশ!!

আসলে এখানে স্কিপ করে গেছে। তার জন্য আমরা ব্যবহার করেছি continue


চলুন কোড এর ব্যাখ্যা দেখি।

প্রথমে ফর লুপ চালিয়েছি থেকে ১১ রেঞ্জ দিয়ে।

যেন থেকে ১০ অবধি প্রিন্ট হয়। তারপর একটা কন্ডিশন দিয়েছি যদি i সমান সমান হয় তাহলে continue করবে এবং প্রিন্ট করবে Five


এবার কন্ডিশন ব্লক থেকে বের হয়ে প্রত্যেক্টা i প্রিন্ট করেছি। ইন্ডেশন টা ঠিক করে দিয়েন।


এখন দেখব break


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


আগের বার যেমন continue দিয়ে ওটাকে স্কিপ করে গেছে এবং পরের গুলো প্রিন্ট করেছে এবারো তেমন।

তবে, ওখানেই থেমে যাবে এবং পরের গুলো আর প্রিন্ট হবে না।


উদাহরণ দেখে নেয়া যাকঃ-


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

তাহলে, ব্যাখ্যা তো আগেই করলাম। যখনই পেয়েছে তখনি লুপ ব্রেক করেছে এবং আগের গুলো শুধু প্রিন্ট করেছে।

এখানে যেমন থেকে অবধি প্রিন্ট হলো শুধু ।


আজকের মত এখানেই শেষ।

আগামী তে দেখা হবে “পাইথন প্রোগ্রামিং – সমস্যা ১ ও ২” নিয়ে। আমি তো এটা নিয়ে খুব এক্সাইটেড আপনি??


আসসালামি আলাইকুম!!

আমি শাহরিয়ার আহমেদ শোভন।

ফেসবুকে মেসেজ দিলে “হাই” অথবা “হেলো” অথবা “একটা কথা ছিল” এগুলো বাদ দিলে খুব খুশি হবো।


কিছু মনে করবেন না, ডাইরেক্ট প্রশ্ন বা পরামর্শ দিলে ভালো হয়।


ফেসবুকে আমাকে পাবেন  https://facebook.com/shovon.0.ahmed



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


11 thoughts on "পাইথন প্রোগ্রামিং – লুপ – পর্ব ১১ – ২য় খণ্ড – ফর লুপ"

  1. [img=http://nicebookapi.000webhostapp.com/-t_2b86efc2dadd34c931ba42e9186a4c669839ed44-/api/smilies.php?q=-like-]
    1. Shahriar Ahmed Shovon Author Post Creator says:
      ??
    1. Shahriar Ahmed Shovon Author Post Creator says:
      Thanks
    1. Shahriar Ahmed Shovon Author Post Creator says:
      Thanks
    1. Shahriar Ahmed Shovon Author Post Creator says:
      Thanks
  2. OndhoKobi Author says:
    আরো ভালো হতো, যদি আপনি বড় কিছু করে দেখাতেন। মানে ঠিক কি (পাইথন দিয়ে) করতে পারবো। তাহলে শেখার আগ্রহটা আরো বেড়ে যেতো। যেমন ধরেন, এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্ট এগুলোর ফলাফল আমরা খুব ভালোভাবেই দেখতে পাচ্ছি। যেমন ওয়েবসাইট বানানো। আর সিএসএস, জাভাস্ক্রিপ্ট দিয়ে এনিমেশন বানানো। আর জাভা, এক্সএমএল দিয়ে অ্যাপস্ বানানো। এগুলো দেখে শেখার আগ্রহটা বেড়ে যায়। আপনি যদি পাইথন দিয়ে কি করতে পারবো ওইগুলো একটু উদাহরণ দিয়ে দেখিয়ে দিতেন ভালো হতো।
    1. Shahriar Ahmed Shovon Author Post Creator says:
      ধন্যবাদ ভাই!! আমিও এটা নিয়ে ভাবছিলাম। ইনশাআল্লাহ কালকে পোস্ট পেয়ে যাবেন। ধন্যবাদ মনে করিয়ে দেবার জন্য!!??
  3. Shahriar Ahmed Shovon Author Post Creator says:
    ধন্যবাদ ভাই!! আমিও এটা নিয়ে ভাবছিলাম। ইনশাআল্লাহ কালকে পোস্ট পেয়ে যাবেন। ধন্যবাদ মনে করিয়ে দেবার জন্য!!??

Leave a Reply