তথ্য ও যোগাযোগ প্রযুক্তি · অধ্যায় ৬
if-elif-else: কোন শর্ত আগে লিখবে
মান বদলাও, চালাও, আর দেখো কী ঘটে।
সুমাইয়া ফলাফল দেখানোর প্রোগ্রাম লিখল। প্রথমে লিখল if marks >= 33: print("Pass"), তারপর elif marks >= 80: print("A+"), শেষে else: print("Fail")। তার বন্ধু রিয়ার নম্বর ৮৫। প্রোগ্রামটি কী ছাপাবে?
৮৫ নম্বরের জন্য প্রোগ্রামটি কী ছাপাবে?
- A+, কারণ ৮৫ নম্বর ৮০-এর বেশি
- Pass, কারণ প্রথম শর্তটিই সত্য, তাই পরের শর্ত আর যাচাই হয় না
- Pass আর A+ দুটোই, কারণ দুটি শর্তই সত্য
যা বদলাতে পারবে
- নম্বর: ০ থেকে ১০০
- কোন শর্ত আগে: আগে marks >= 33, আগে marks >= 80
যা মেপে দেখাবে
- আউটপুট
- যে শাখা চলল
- যাচাই করা শর্ত
চালানোর সময় খেয়াল করো
- শর্তের ক্রম বদলে আবার ৮৫ দিয়ে চালাও। কোন লাইনগুলো চলল দেখো।
নিজে করে দেখো
- প্রোগ্রামটি ঠিক করো যাতে ৮৫ নম্বরে A+ ছাপা হয়।
ইঙ্গিত
কোন শর্ত আগে যাচাই হওয়া দরকার?
- এমন নম্বর দাও যাতে else-এর শাখা চলে।
ইঙ্গিত
কোন নম্বরে কোনো শর্তই সত্য হয় না?
ধারণাটা কী?আগে নিজে চালিয়ে দেখো, তারপর খোলো।
if-elif-else উপর থেকে নিচে শর্ত যাচাই করে এবং কেবল প্রথম সত্য শাখাটি চালায়
পাইথন প্রথমে if-এর শর্ত যাচাই করে। সেটি সত্য হলে ওই শাখা চালিয়ে পুরো if-elif-else থেকে বেরিয়ে যায়; পরের elif আর দেখেই না। ৮৫ নম্বরের জন্য marks >= 33 সত্য, তাই Pass ছাপা হয়, আর A+ এর শাখাটি কখনোই চলতে পারে না। তাই বেশি কঠিন শর্তটি (marks >= 80) আগে লিখতে হয়, তারপর marks >= 33, শেষে else।
যেসব ভুল ধারণা হয়
- elif এর মধ্যে যে শর্তটি সবচেয়ে ভালোভাবে মেলে পাইথন সেটিই বেছে নেয়
- যতগুলো শর্ত সত্য, ততগুলো শাখাই চলে
বাস্তবে কোথায় দেখা যায়
- বোর্ড পরীক্ষার ফলাফলে নম্বর থেকে গ্রেড (A+, A, A-) নির্ধারণের সফটওয়্যার
- বিদ্যুৎ বিলে ব্যবহারের ধাপ অনুযায়ী ইউনিটের দাম ঠিক করা