কন্ডিশনাল লজিক (Conditional logic)
কন্ডিশনাল লজিক কি?
* যদি হয় (if),
* যদি হয় নইলে (If else),
* If-Elif লেডার,
* নেস্টেড if (Nested if),
* Shorthand-if,
* ShortHand-if-else,
উপরে উল্লেখিত কন্ডিশনাল লজিক গুলো নিচে বিশদ আলোচনা করা যাক-
যদি হয় (if)
If স্টেটমেন্ট হল সবচেয়ে মৌলিক কন্ডিশনাল লজিক, যেখানে কোডটি নির্দিষ্ট কন্ডিশন পূরণ করে কিনা তার উপর ভিত্তি করে কার্যকর করা হয়। এটির একটি কোড বডি রয়েছে যেটি শুধুমাত্র যদি if স্টেটমেন্টের কন্ডিশনটি সত্য হয় তবেই কার্যকর করে। বিবৃতিটি একটি এক লাইন বা কোডের একটি ব্লক হতে পারে।
ধরো তুমি জাতীয় জাদুঘর এর সামনে দিয়ে হেঁটে বাসায় যাচ্ছিলা, তোমার ইচ্ছা হলো, একটু জ্ঞান অর্জন করে যাই জাদুঘর ঘুরে, কিন্তু তুমি যখনি জাদুঘরে প্রবেশ করতে চাইলে, জাদুঘরের রক্ষী মামা বললো, টিকিট কেটে ঢুকতে হবে নয়তো রাস্তা মাপতে হবে। জাদুঘরে ঢুকার ক্ষেত্রে টিকিট কাটা যেমন শর্ত, কোন প্রোগ্রামিং ব্লক এ ঢুকার ক্ষেত্রে আমরা এমন শর্ত আরোপ করতে পারি if স্টেটমেন্ট ব্যবহার করে। টিকিট না কাটলে যেমন জাদুঘরে ঢুকা যাবে না, তেমন করে if স্টেটমেন্ট এ আরোপিত শর্ত সত্য না হলে উক্ত if স্টেটমেন্ট এর ভেতরের কোড এক্সিকিউট হবে না।
যদি হয় নইলে (if else)
এই কন্ডিশনাল লজিকটি ব্যবহার করা হয় যখন প্রদত্ত শর্তের সত্য এবং মিথ্যা উভয় অংশই কার্যকর করার জন্য করতে হয়। কন্ডিশনাল সত্য হলে, if ব্লকের ভিতরে কোড বডি কার্যকর করা হয়; কন্ডিশনাল মিথ্যা হলে, if ব্লকের বাইরের কোড বডি কার্যকর করা হয়। যেমন, যারা ক্লাসে উপস্থিত থাকবে তারা চকোলেট পাবে, বাকিরা পাবে না, if-else স্টেটমেন্টের একটি উদাহরণ।
পাইথনে if-else স্টেটমেন্টের সিনট্যাক্সঃ
আমরা উপরের উদাহরণ এ শুধু দেখলাম নাম্বার টা পজিটিভ নাম্বার কিনা । কিন্তু আমাদের যদি বলে নাম্বার টা নাম্বার টি পজিটিভ না নেগেটিভ চেক করছে বলে তাহলে if-else দিয়ে সহজে বের করতে পারবো –
আউটপুট
if-else লেডার
এই ক্ষেত্রে, if কন্ডিশনটি প্রথমে মূল্যায়ন করা হয়। if কন্ডিশনটি মিথ্যা হলে, elif এর কন্ডিশনটি কার্যকর করা হয়। যদি সকল elif কন্ডিশন এর কোনটিই শর্ত পূরণ না করে তবে else স্টেটমেন্ট কার্যকর হয়। উল্লেখ্য, আমরা একাধিক elif স্টেটমেন্ট ব্যবহার করতে পারি, একদম শেষে else স্টেটমেন্ট ব্যবহারের আগে। elif স্টেটমেন্ট গুলোর মধ্যে আমরা একাধিক কন্ডিশন সেক্স করতে পারি।
পাইথনে If-elif-else স্টেটমেন্টের সিনট্যাক্সঃ
আমাদের অনেকের হয়তো মনে হয় যে শূন্য তো আসলে পজিটিভ বা নেগেটিভ কোনোটাই না। শূন্যের চেয়ে বড় সব সংখ্যা হচ্ছে পজিটিভ আর ছোট সব সংখ্যা হচ্ছে নেগেটিভ। তাহলে সেক্ষেত্রে আমাদের নতুন আরেকটি কন্ডিশন চেক করতে হবে আর এই চেকিং এ নতুন কন্ডিশন যুক্ত করার জন্য আমরা If-elif-else ব্যবহার করে থাকি । আর এই elif এর মাধ্যমে আমরা যত ইচ্ছা তত নতুন কন্ডিশন চেক করতে পারবো ।
আউটপুট
উপরের কোড থেকে দেখছি যে n এর ভ্যালু ০ দেওয়া আছে। প্রথমে আমাদের কোড চেক করছে যে n এর মান ০ এর বড় কিনা কিন্তু তা সত্য নয় সেই জন্য পরের কন্ডিশন চেক করছে elif দিয়ে n এর মান ০ এর ছোট কিনা এবং এটাও সত্য না । যেহেতু উপরের সব কন্ডিশন মিথ্যা তাই else এর ভিতর যা আছে তা আমাদের আউটপুট দেখাবে এবং আমাদের টার্মিনাল এ সেই হিসাবে **The number is zero.** আউটপুট দেখাচ্ছে ।
নেস্টেড if (Nested if)
নেস্টেড if স্টেটমেন্ট হল এমন একটি স্টেটমেন্ট যেখানে একটি If স্টেটমেন্ট অন্য If স্টেটমেন্টের ভিতরে থাকে। এটি ব্যবহার করা হয় যখন একটি ভেরিয়েবলকে একাধিকবার প্রসেস করতে হয়। If, If-else এবং If…elif…else স্টেটমেন্ট প্রোগ্রামে ব্যবহার করা যেতে পারে। নেস্টেড if স্টেটমেন্টে, প্রতিটি স্টেটমেন্টের নেস্টেডভাবে কার্যকর করার জন্য ইন্ডেন্টেশন (শুরুতে whitespace) দিতে হয়।
পাইথনে nested-if স্টেটমেন্টের সিনট্যাক্সঃ
এতক্ষণ আমরা দেখলাম যে একটি নাম্বার পজিটিভ, নেগেটিভ বা শূন্য কিনা কিন্তু আমাদের যদি বলা পজিটিভ নাম্বার গুলো জোড় না বিজোড়? আমরা এই কাজ নেস্টেড if দিয়ে করে ফেলতে পারি।
আউটপুট
উপরের কোড থেকে দেখছি যে n এর ভ্যালু 13 দেওয়া আছে যা একটি বিজোড় নাম্বার । উপরে আমাদের কোডে আমরা প্রথমে চেক করছি যে n এর মান শূন্য এর চেয়ে বড় কিনা এবং কন্ডিশন সত্য হওয়ায় মানে নাম্বার টি পজিটিভ নাম্বার, এখন আমাদের চেক করা নাম্বার টি জোড় না বিজোড় তার জন্য আমরা বাহিরের if স্টেটমেন্ট এর ভিতর নতুন ভাবে আবার if-else লিখেছি যাকে আমরা নেস্টেড if বলতে পারি। ভেতরের if-else দিয়ে আমরা চেক করছি যে নাম্বার টা জোড় না বিজোড়।
Shorthand-if
পাইথনের অন্যতম একটি ফিচার হলো তা দিয়ে অনেক কম্পেক্ট কোড লিখা যায়। আর এমন কম্পেক্ট কোড লিখার জন্য পাইথন অনেক ধরণের সর্টহ্যান্ড স্টেটমেন্ট সাপোর্ট করে। নিশ্চই মনে প্রশ্ন উঁকি মারছে, সর্টহ্যান্ড স্টেটমেন্ট আবার কী? কোন এক্সিকিউটেবল স্টেটমেন্ট যদি এমন ভাবে লিখা হয়, যাতে সম্পূর্ণ স্টেটমেন্ট একটি লাইনে ই লিখে ফেলা যায়, তাহলে তাকে সর্টহ্যান্ড স্টেটমেন্ট বলে। if স্টেটমেন্ট এর বডি আমরা ইন্ডেন্টেশন এর মাধ্যমে একাধিক লাইনে না লিখে, if স্টেটমেন্ট এর লাইনেই লিখে ফেলতে পারি সর্টহ্যান্ড স্টেটমেন্ট এর ধারণা থেকে।
যখন if ব্লকের ভিতরে শুধুমাত্র একটি স্টেটমেন্ট এক্সিকিউট করতে হয়, তখন চাইলে Shorthand if স্টেটমেন্ট ব্যবহার করা যায়।
পাইথনে Shorthand-if স্টেটমেন্টের সিনট্যাক্সঃ
if condition: statement
আউটপুট
ShortHand-if-else
shorthand if এ যেমন করে if স্টেটমেন্ট এর কন্ডিশন এবং বডি একই লাইনে লিখে ফেলা যায়, ঠিক তেমন করে If-else স্টেটমেন্ট কেউ প্রকাশ করা যায়। if এবং else উভয় ব্লক এক্সিকিউট করার জন্য একটি মাত্র লাইন ব্যবহার করা হয়।
পাইথনে ShortHand-if-else স্টেটমেন্টের সিনট্যাক্সঃ
statement1 if condition else statement2
আউটপুট
Example-1
Example-2
Example-3
vivasoft তাদের কর্মচারীকে 15% বোনাস দেওয়ার সিদ্ধান্ত নিয়েছে যদি তার চাকরির বছর 3 বছরের বেশি হয়। ব্যবহারকারীকে তাদের বেতন এবং চাকুরীর টোটাল বছর জিজ্ঞাসা করুন এবং নেট বোনাসের পরিমাণ প্রিন্ট করুন।
Example-4
Get Largest Number between three number
Example-5
Print the number is even or odd