পাইথন প্রোগ্রামিং, ফর লুপ ও ফর লুপের গোপন অস্ত্রঃ for…else

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

পাইথন ফর লুপ

আমি ফর লুপ নিয়ে বেশি কথা বলব না, কারন এ প্রবন্ধের মূল উদ্দেশ্য ফর লুপ নয়, ফর লুপের রহস্যময় 🕵️ অংশ ‘ফর…ইলস’ 👁️। যাহোক, পাইথনের ফর লুপ মূলত একটি ইটারেসন লুপ। এটি দিয়ে আমরা ইটারেসন প্রোটকল সাপর্ট করে এমন সকল ডাটা স্ট্রাকচরের উপর ইটারেট করি। আপনি যদি ইটারেসন, ইটারেটর না বোঝেন তবে বুঝতে হবে আপনি অতিসয় বিগিনার এবং আপনি আমার অন্য টিওটোরিয়াল/প্রবন্ধ দেখতে পারেন উক্ত বিষয়ের উপরে (যদিও বিগিনারদের জন্য এটি সম্পূর্নরূপে দেখতে ও বুঝতে সমস্যা হবার সম্ভাবনা দেখি না)। তো চলেন একটি ফর লুপ চালিয়ে দেখেই নিই।

সাপ_মহদয়গন = ("কুলিম", "গোখরা", "গুইসাপ")

for সাপ in সাপ_মহদয়গন:
    print(সাপ)

রান করার পর ফলাফল:

কুলিম
গোখরা
গুইসাপ

ইওওও, সো সিম্পল! 🕺💃🏻

বাংলাদেশ মানেই সব জাইগায় নিচে স্টার সংকেত দিয়ে শর্ত প্রোজয্য। চলেন শর্ত লাগায়ঃ

সাপ_মহদয়গন = ("কুলিম", "গোখরা", "গুইসাপ")

for সাপ in সাপ_মহদয়গন:
    if সাপ == "গুইসাপ":
        print("👀👀👀 ওমা, এতো বড় সাপ, পালাও ... ৫ মিনিট পর ... বাপজানননননন, আমার পা ভেঙ্গ গেছে 🤕🤕🤕")
        break
    else:
        print(সাপ)

ফলাফল:

কুলিম
গোখরা
👀👀👀 ওমা, এতো বড় সাপ, পালাও ... ৫ মিনিট পর ... বাপজানননননন, আমার পা ভেঙ্গ গেছে 🤕🤕🤕

থাক আর সামনে না আগায়, পা ঠিক হলে আবার দৌড়ানো যাবে।

for…else – শর্তহীন চু্ক্তি

if এর সাথে else হয়, try এর সাথে else হয়, এসব গল্প তো শুনেছি, এ কোন বাবুরাম সাপুড়ে যে for এর সাথে else লাগায়? এ প্রশ্নে আপনাকে আবারও বুঝতে হবে আপনি বিগিনার না (অতিশয় বিগিনার)। সমস্যা নাই, বাবুরাম সাপুড়ে আছেতোঃ কোমরটা দুলিয়ে, গাল দুটো ফুলিয়ে, সাপ্পের খেল্লা দেখাতে 🕺 🐍 🕺 🐍 🕺 🐍 🕺 🐍। for এর সাথে else শুধু বাবুরাম শাপুড়রেরা না, অনেক গাধারাম সাপুড়েরাও ইউজ করে, আপনি পিছিয়ে আছেন! পিছিয়ে থাকা আর না, আর না!

জি জনাব, ফরের সাথে ইলস ব্যবহার করা যায়। কিন্তু কেন? আচ্ছা! কিভাবে? কখন?

ওমা! এত প্রশ্ন কেও একবারে করে! যাক, যখন করেই ফেলেছেন দিয়ে দিই। তবে ভেঙ্গে ভেঙ্গে উদাহরন দিয়ে দিয়ে – ইয়ে, মানে, আমি প্রাইমারী স্কুলে থাকতে এক কথায় প্রকাশ করতে পারতাম না তাই এক বাক্যে করতাম 😆😆😆।

for loop শেষ হবার পর যদি কোনও কোড রান করাতে চান তবে তা ইলস ব্লকের মধ্যে লিখুন:

সাপ_মহদয়গন = ("কুলিম", "গোখরা", "গুইসাপ")

for সাপ in সাপ_মহদয়গন:
    print(সাপ)
else:
    print("আহা কি আনন্দ আকাশে বাতাসে ... সাপ, এখনও ছোবল দেই নাই তাই না বাবু ...")

পাকা ফলঃ

কুলিম
গোখরা
গুইসাপ
আহা কি আনন্দ আকাশে বাতাসে ... সাপ, এখনও ছোবল দেই নাই তাই না বাবু ...

এখন কেও একজন এসে বলবে “চৌধুরী সাহবে, আমি বোকা হতে পারি কিন্তু … বোকারাম পাঁ*** নই”, আবারও বলবে: “আমিতো একই কাজ else ব্যবহার না করেও ফর লুপের নিচে করতে পারি!” যেমনঃ

সাপ_মহদয়গন = ("কুলিম", "গোখরা", "গুইসাপ")

for সাপ in সাপ_মহদয়গন:
    print(সাপ)
print("আহা কি আনন্দ আকাশে বাতাসে ... সাপ, এখনও ছোবল দেই নাই তাই না বাবু ...")

আউটপুটঃ

কুলিম
গোখরা
গুইসাপ
আহা কি আনন্দ আকাশে বাতাসে ... সাপ, এখনও ছোবল দেই নাই তাই না বাবু ...

ওত্তেরি, তাইতো! কিন্তু মহাশয়, ওস্তাদের মাইর শেষ রাইতে, একটু অপেক্ষা করেন।

else ব্লকের মধ্যের কোড শুধু তখন রান হবে যখন লুপটি স্বাভাবিকভাবে শেষ হবে – জোর যবরদস্তি করে শেষ না করেঃ জোর করে কি ভালবাসা হয়রে বাছা? 🎅🎅🎅

একটা এক্সামপল হয়েই যাকঃ

সাপ_মহদয়গন = ("কুলিম", "গোখরা", "গুইসাপ")

for সাপ in সাপ_মহদয়গন:
    if সাপ == "গুইসাপ":
        print("👀👀👀 ওমা, এতো বড় সাপ, পালাও ... ৫ মিনিট পর ... বাপজানননননন, আমার পা ভেঙ্গ গেছে 🤕🤕🤕")
        break
    else:
        print(সাপ)
else:
    print("শয়তাননননন... জোর করে দেহ পাবি, মন পাবি না! শয়তান ... ")    

রান করার পর রেজাল্টঃ

কুলিম
গোখরা
👀👀👀 ওমা, এতো বড় সাপ, পালাও ... ৫ মিনিট পর ... বাপজানননননন, আমার পা ভেঙ্গ গেছে 🤕🤕🤕

দেখেন! শয়তান না দেহ পাইল, না মন পাইল! হিরোইন আত্মহনন করেছে, এলস ব্লক রানই হয় নাই! জোর করে ভালবাসা হয়নারে বাবা, ভাল হয়ে যাহ।

break ব্যবহারে লুপের অকাল অপর্মত্যু ঘটে বলে এ ক্ষেত্রে ইলস ব্লকের কোড রান হয়না! আমার তৈরি হাইব্রিড স্ট্যটিক+ডাইনামিক ওয়েব ফ্রেমওয়ার্ক ‘সাইনামিক’ এর সোর্স কোড ঘাটলে ফর…এলস এর কতিপয় উদাহরণ দেখতে পাবেন।

ইতি কথা

অনেকক্ষণ তো শেখা হল, এবার একটু প্র‌্যকটিস করেন। আপনাদের মতামত আমাকে মেইল করে জানাতে পারেন।


যাদের একা পাইথন শিখতে সমস্যা হচ্ছে বা অন্য় কোথাও শিখে ফল পাননি অথবা একজন প্রো পাইথন সাপুড়ের কাছে হাতে কলমে শিখতে চান তারা নিচের লিংকে যেতে পারেনঃ


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *