ভূমিকা
প্রোগ্রামিং জগতের সবচেয়ে শক্তিশালী এবং মজার দিক হলো সিদ্ধান্ত গ্রহণ করার ক্ষমতা। আপনি যখন কোনো সফটওয়্যার বা অ্যাপ্লিকেশন তৈরি করেন, তখন প্রোগ্রামটিকে সিদ্ধান্ত নিতে হয় যে কোন পরিস্থিতিতে কোন কাজটি করা হবে। ধরুন, একটি ই-কমার্স অ্যাপে গ্রাহকের বয়স ১৮ বছরের কম হলে তাকে পণ্য কিনতে বাধা দিতে হবে, আবার ১৮ বা তার বেশি হলে অনুমতি দিতে হবে। এই ধরণের লজিক্যাল সিদ্ধান্ত নেওয়ার জন্য পাইথনে আমাদের প্রয়োজন হয় ‘Conditional Statements’ বা শর্তসাপেক্ষ বিবৃতি। পাইথনে এই কাজটি করার সবচেয়ে সহজ ও কার্যকর মাধ্যম হলো Python if elif else।
প্রোগ্রামিং শেখার যাত্রায় লজিক বা যুক্তি তৈরি করা একটি অত্যন্ত গুরুত্বপূর্ণ ধাপ। আপনি যদি কেবল গণিত বা ডেটা প্রসেসিং করেন কিন্তু প্রোগ্রামকে সিদ্ধান্ত নিতে না শেখান, তবে আপনার তৈরি করা কোড কেবল একটি ক্যালকুলেটরের মতো কাজ করবে, কোনো বুদ্ধিমান সিস্টেমের মতো নয়। একটি বুদ্ধিমান প্রোগ্রাম তখনই তৈরি করা সম্ভব যখন সেটি ইনপুট ডেটা বিশ্লেষণ করে বিভিন্ন শর্তের ভিত্তিতে ভিন্ন ভিন্ন ফলাফল প্রদান করতে পারে। পাইথনের এই কন্ট্রোল স্টেটমেন্টগুলো প্রোগ্রামারের চিন্তাশক্তিকে কোডে রূপান্তর করতে সাহায্য করে।
এই আর্টিকেলে আমরা খুব সহজভাবে শিখব কীভাবে পাইথনে শর্তসাপেক্ষ স্টেটমেন্ট ব্যবহার করতে হয়। আমরা কেবল তাত্ত্বিক আলোচনা নয়, বরং বাস্তব জীবনের উদাহরণ এবং কোড স্নিপেট ব্যবহার করে প্রতিটি বিষয় পরিষ্কার করব। আপনি যদি একজন বিগিনার বা নতুন শিক্ষার্থী হন, তবে এই গাইডটি আপনাকে পাইথনের লজিক্যাল ফাউন্ডেশন মজবুত করতে সাহায্য করবে। আমরা জানব কীভাবে একটি শর্তের বিপরীতে একাধিক শর্ত পরীক্ষা করতে হয় এবং কীভাবে কোনো শর্ত পূরণ না হলে ডিফল্ট কোনো কাজ সম্পন্ন করতে হয়।
পরবর্তী আলোচনার মাধ্যমে আপনি জানতে পারবেন কীভাবে পাইথনে `if` স্টেটমেন্ট দিয়ে কাজ শুরু করতে হয়, কীভাবে `elif` ব্যবহার করে একাধিক বিকল্প পথ খোলা রাখা যায় এবং কীভাবে `else` ব্যবহার করে সমস্ত শর্তের বাইরে একটি চূড়ান্ত সিদ্ধান্ত নেওয়া যায়। সুতরাং, আপনি যদি পাইথন ডেভেলপার হিসেবে নিজেকে দক্ষ করে তুলতে চান, তবে Python if elif else এর এই মাস্টারক্লাসটি আপনার জন্য অত্যন্ত জরুরি।
Python-এ ‘if’ স্টেটমেন্ট: প্রথম পদক্ষেপ
পাইথনে সিদ্ধান্ত নেওয়ার যাত্রার প্রথম ধাপ হলো `if` স্টেটমেন্ট। এটি সবচেয়ে মৌলিক এবং বহুল ব্যবহৃত শর্তসাপেক্ষ বিবৃতি। সহজ কথায় বলতে গেলে, `if` স্টেটমেন্ট ব্যবহার করা হয় যখন আমরা নিশ্চিত হতে চাই যে একটি নির্দিষ্ট শর্ত সত্য (True) হলে কোনো একটি কোড ব্লক কার্যকর হবে। যদি শর্তটি মিথ্যা (False) হয়, তবে প্রোগ্রামটি সেই কোড ব্লকটি এড়িয়ে চলে সরাসরি পরবর্তী লাইনে চলে যায়।
পাইথনে `if` স্টেটমেন্ট লেখার নিয়মটি অত্যন্ত পরিষ্কার। প্রথমে `if` কিওয়ার্ডটি লিখতে হয়, তারপর একটি শর্ত দিতে হয়, এবং সবশেষে একটি কোলন (`:`) দিতে হয়। মনে রাখবেন, কোলন দেওয়ার পর পরবর্তী লাইনের কোডটি অবশ্যই ইন্ডেন্টেশন (Indentation) বা স্পেস দিয়ে লিখতে হবে। পাইথনে ইন্ডেন্টেশন অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি নির্দেশ করে কোন কোডটি কোন ব্লকের অন্তর্ভুক্ত।
একটি উদাহরণ দিয়ে বিষয়টি বোঝা যাক। ধরুন, আমাদের একটি প্রোগ্রাম দরকার যা চেক করবে কোনো ব্যক্তি ভোট দিতে পারবেন কি না।
age = 20
if age >= 18:
print("আপনি ভোট দিতে পারবেন।")
উপরের কোডটিতে, যদি `age` এর মান ১৮ বা তার বেশি হয়, তবে আউটপুট আসবে “আপনি ভোট দিতে পারবেন।” কিন্তু যদি `age` এর মান ১৫ হয়, তবে প্রোগ্রামটি কোনো আউটপুট দেবে না। এটিই হলো `if` স্টেটমেন্টের প্রাথমিক কাজ।
তবে শুধু `if` দিয়ে সব কাজ করা সম্ভব নয়। বাস্তব জীবনে অনেক সময় আমাদের এমন পরিস্থিতির সম্মুখীন হতে হয় যেখানে একটি শর্ত পূরণ না হলে অন্য একটি শর্ত পরীক্ষা করতে হয়। যেমন—যদি বয়স ১৮ এর কম হয়, তবে তাকে ভোট দিতে পারবে না। এই ধরনের জটিল লজিক সামলাতে আমাদের প্রয়োজন হয় আরও উন্নত কিছু স্টেটমেন্ট। কিন্তু প্রাথমিক ধারণা হিসেবে `if` বুঝতে পারা প্রোগ্রামিংয়ের ভিত্তি স্থাপনের জন্য অপরিহার্য।
Python-এ ‘elif’ স্টেটমেন্ট: একাধিক শর্তের ব্যবস্থাপনা
বাস্তব জীবনে আমাদের সিদ্ধান্তগুলো সবসময় কেবল ‘হ্যাঁ’ বা ‘না’ এর মধ্যে সীমাবদ্ধ থাকে না। অনেক সময় আমাদের অনেকগুলো বিকল্প বা অপশন থাকে। উদাহরণস্বরূপ, পরীক্ষার ফলাফল নির্ধারণ করার সময় আমরা শুধু দেখি পাস বা ফেল নয়, বরং গ্রেড (A, B, C, D) চেক করি। এই ধরণের বহুমুখী সিদ্ধান্ত নেওয়ার জন্য পাইথনে `elif` স্টেটমেন্ট ব্যবহার করা হয়।
`elif` শব্দটি এসেছে ‘else if’ এর সংক্ষিপ্ত রূপ থেকে। যখন আপনার কাছে একটি প্রাথমিক `if` শর্ত থাকে এবং সেই শর্তটি মিথ্যা প্রমাণিত হয়, তখন আপনি পরবর্তী শর্তটি পরীক্ষা করার জন্য `elif` ব্যবহার করেন। আপনি চাইলে একটি প্রোগ্রামে একের অধিক `elif` ব্যবহার করতে পারেন। এটি প্রোগ্রামকে অনেক বেশি বুদ্ধিমান এবং নমনীয় করে তোলে।
চলুন একটি বাস্তব উদাহরণ দেখি। আমরা একটি প্রোগ্রাম লিখব যা শিক্ষার্থীর মার্কসের ওপর ভিত্তি করে গ্রেড প্রদান করবে।
marks = 75
if marks >= 80:
print("গ্রেড: A+")
elif marks >= 70:
print("গ্রেড: A")
elif marks >= 60:
print("গ্রেড: B")
elif marks >= 50:
print("গ্রেড: C")
else:
print("গ্রেড: Fail")
এখানে প্রোগ্রামটি প্রথমে চেক করছে মার্কস ৮০ বা তার বেশি কি না। যদি না হয়, তবে এটি `elif` এর মাধ্যমে চেক করছে ৭০ বা তার বেশি কি না। এভাবে ক্রমান্বয়ে শর্তগুলো পরীক্ষা করা হয়। যদি কোনোটিই মিলে না যায়, তবে প্রোগ্রামটি সর্বশেষ `else` ব্লকে চলে যায়।
Python if elif else এর এই কাঠামোটি অত্যন্ত শক্তিশালী। এটি প্রোগ্রামের কার্যকারিতা বাড়ায় কারণ এটি অপ্রয়োজনীয় শর্ত পরীক্ষা করা বন্ধ করে দেয়। অর্থাৎ, যদি প্রথম শর্তটি মিলে যায়, তবে পাইথন আর নিচের `elif` গুলো চেক করে সময় নষ্ট করে না। এটি কোড অপ্টিমাইজেশনে দারুণ ভূমিকা রাখে।
Python-এ ‘else’ স্টেটমেন্ট: চূড়ান্ত সিদ্ধান্ত গ্রহণ
পাইথনে সিদ্ধান্তের চেইনে সর্বশেষ ধাপ হলো `else` স্টেটমেন্ট। `if` এবং `elif` দিয়ে আমরা যখন নির্দিষ্ট কিছু শর্ত পরীক্ষা করি, তখন সেই সব শর্তই যদি মিথ্যা প্রমাণিত হয়, তবে প্রোগ্রামটি কী করবে? এই প্রশ্নের উত্তর দেয় `else` স্টেটমেন্ট। এটি মূলত একটি ‘ডিফল্ট’ বা ‘বিকল্প’ পথ হিসেবে কাজ করে।
`else` স্টেটমেন্টের কোনো নিজস্ব শর্ত থাকে না। এটি কেবল তখনই কার্যকর হয় যখন উপরের দেওয়া সমস্ত `if` এবং `elif` শর্তগুলো মিথ্যা (False) হয়ে যায়। সহজ কথায়, এটি হলো “অন্যথায়” বা “বিকল্প হিসেবে” কাজ করে। এটি প্রোগ্রামে একটি নিরাপত্তা কবচ হিসেবে কাজ করে যাতে কোনো ইনপুট বা শর্তের বাইরে গেলে প্রোগ্রামটি কোনো নির্দিষ্ট আউটপুট প্রদান করতে পারে।
একটি উদাহরণ দিয়ে বিষয়টি পরিষ্কার করা যাক। ধরা যাক, আমরা একটি প্রোগ্রাম লিখব যা জোড় না বিজোড় সংখ্যা নির্ণয় করবে।
number = 7
if number % 2 == 0:
print("এটি একটি জোড় সংখ্যা।")
else:
print("এটি একটি বিজোড় সংখ্যা।")
এখানে `if` চেক করছে সংখ্যাটি ২ দিয়ে বিভাজ্য কি না। যদি বিভাজ্য হয়, তবে এটি জোড়। আর যদি বিভাজ্য না হয় (অর্থাৎ শর্তটি মিথ্যা হয়), তবে `else` অংশটি কার্যকর হবে এবং বলবে এটি বিজোড়।
সারসংক্ষেপে বললে, Python if elif else এর পুরো বিষয়টি হলো একটি সিদ্ধান্তের সিঁড়ি। `if` হলো সিঁড়ির প্রথম ধাপ, `elif` হলো পরবর্তী ধাপগুলো, এবং `else` হলো সিঁড়ির শেষ ধাপ বা মেঝে। এই তিনটি স্টেটমেন্ট একত্রে ব্যবহার করে আপনি যেকোনো জটিল লজিক বা সিদ্ধান্ত গ্রহণ প্রক্রিয়াকে কোডে রূপান্তর করতে পারেন। পাইথনে এই তিনটি বিষয়ের সঠিক ব্যবহার জানলে আপনি যেকোনো সফটওয়্যার ডেভেলপমেন্টের জটিল লজিক্যাল সমস্যা সমাধান করতে সক্ষম হবেন।
পাইথনে সিদ্ধান্ত গ্রহণ: if, elif এবং else এর ভূমিকা
প্রোগ্রামিং জগতের সবচেয়ে গুরুত্বপূর্ণ একটি কাজ হলো সিদ্ধান্ত গ্রহণ করা। বাস্তব জীবনে আমরা যেমন বিভিন্ন পরিস্থিতির ওপর ভিত্তি করে সিদ্ধান্ত নিই (যেমন: যদি বৃষ্টি হয়, তবে আমি ছাতা নিয়ে বাইরে যাব), তেমনি প্রোগ্রামিংয়েও কোনো নির্দিষ্ট শর্তের ওপর ভিত্তি করে কোড পরিচালনা করতে হয়। পাইথনে এই কাজটি করা হয় Python if elif else স্টেটমেন্টের মাধ্যমে।
পাইথনে সিদ্ধান্ত নেওয়ার প্রক্রিয়াটি অত্যন্ত সহজ এবং মানুষের ভাষার কাছাকাছি। এখানে মূলত তিনটি প্রধান উপাদান কাজ করে: if, elif এবং else।
১. if স্টেটমেন্ট: এটি হলো সবচেয়ে প্রাথমিক ধাপ। যদি কোনো শর্ত সত্য (True) হয়, তবেই কেবল এর নিচের কোড ব্লকটি কাজ করবে। যদি শর্তটি মিথ্যা (False) হয়, তবে পাইথন সরাসরি পরবর্তী ধাপে চলে যাবে।
২. elif (else if) স্টেটমেন্ট: যখন আপনার কাছে একাধিক শর্ত থাকে এবং আপনি চান যে প্রথমটি মিথ্যা হলে দ্বিতীয়টি পরীক্ষা করতে, তখন elif ব্যবহার করা হয়। এটি মূলত একাধিক বিকল্প বা অপশনের মধ্যে একটি বেছে নিতে সাহায্য করে।
৩. else স্টেটমেন্ট: এটি হলো চূড়ান্ত ধাপ। যদি উপরের কোনো শর্তই মিলে না যায়, তবে else ব্লকের ভেতরের কোডটি কার্যকর হয়।
একটি বাস্তব উদাহরণ:
ধরা যাক, আমরা একটি প্রোগ্রাম লিখব যা শিক্ষার্থীর প্রাপ্ত নম্বর দেখে গ্রেড নির্ধারণ করবে।
marks = 75
if marks >= 80:
print("Grade: A+")
elif marks >= 70:
print("Grade: A")
elif marks >= 60:
print("Grade: A-")
else:
print("Grade: Fail")
উপরের উদাহরণটিতে আমরা দেখতে পাচ্ছি, Python if elif else ব্যবহার করে কীভাবে একটি নির্দিষ্ট সীমার মধ্যে সিদ্ধান্ত নেওয়া হচ্ছে। এখানে যদি নম্বর ৭০ বা তার বেশি হয় কিন্তু ৮০ এর কম হয়, তবে প্রোগ্রামটি “Grade: A” আউটপুট দেবে।
পাইথনে মাল্টিপল কন্ডিশন এবং নেস্টেড ইফ-এলস এর ব্যবহার
প্রোগ্রামিং করার সময় অনেক সময় আমাদের এমন পরিস্থিতির সম্মুখীন হতে হয় যেখানে একটি সিদ্ধান্তের ওপর ভিত্তি করে আরেকটি সিদ্ধান্ত নিতে হয়। একে বলা হয় ‘নেস্টেড ইফ’ (Nested if)। পাইথনে এই জটিল লজিকগুলো হ্যান্ডেল করা খুবই সহজ। যখন আপনি Python if elif else এর ভেতরে আরেকটি if স্টেটমেন্ট ব্যবহার করেন, তখন একে নেস্টেড কডিশন বলা হয়।
উদাহরণস্বরূপ, ধরা যাক আপনি একটি ই-কমার্স ওয়েবসাইট বানাচ্ছেন। সেখানে ডিসকাউন্ট দেওয়ার নিয়ম হলো: যদি গ্রাহক প্রিমিয়াম মেম্বার হয় এবং কেনাকাটার পরিমাণ ১০০০ টাকার বেশি হয়, তবেই সে ২০% ছাড় পাবে। এখানে দুটি শর্ত একে অপরের ওপর নির্ভরশীল।
is_premium_member = True
purchase_amount = 1500
if is_premium_member:
if purchase_amount > 1000:
print("Discount: 20%")
else:
print("Discount: 5%")
else:
print("No Discount")
এখানে প্রথম শর্তটি (is_premium_member) সত্য হওয়ার পর দ্বিতীয় শর্তটি (purchase_amount > 1000) যাচাই করা হচ্ছে। যদি প্রথমটি মিথ্যা হতো, তবে প্রোগ্রামটি সরাসরি ‘No Discount’ প্রিন্ট করত এবং দ্বিতীয়টি আর পরীক্ষা করত না।
তবে মনে রাখতে হবে, অতিরিক্ত নেস্টেড ইফ ব্যবহার করলে কোড পড়া বা বুঝতে অসুবিধা হতে পারে (যাকে বলা হয় Code Spaghetti)। তাই দক্ষ ডেভেলপাররা যতটা সম্ভব elif ব্যবহার করে লজিকটি সহজ রাখার চেষ্টা করেন। পাইথনে ইন্ডেন্টেশন বা স্পেসিং এর গুরুত্ব অনেক বেশি, তাই একটি if ব্লকের ভেতরে অন্যটি লেখার সময় সঠিক স্পেস দেওয়া অত্যন্ত জরুরি। ভুল স্পেস দিলে প্রোগ্রামটি এরর (IndentationError) দেখাবে।
লজিক্যাল অপারেটর এবং পাইথন কন্ডিশনাল লজিক
Python if elif else স্টেটমেন্টকে আরও শক্তিশালী করার জন্য পাইথনে কিছু লজিক্যাল অপারেটর রয়েছে। এই অপারেটরগুলো ব্যবহার করে আপনি একটি মাত্র if এর ভেতরে একাধিক শর্তকে যুক্ত করতে পারেন। প্রধান তিনটি লজিক্যাল অপারেটর হলো: and, or, এবং not।
১. and অপারেটর: যখন আপনি চান যে সবকটি শর্তই সত্য হতে হবে, তখন and ব্যবহার করা হয়। যেমন: `if age > 18 and has_license == True:`। এখানে দুটি শর্তই সত্য হলেই কোডটি কাজ করবে।
২. or অপারেটর: যখন আপনি চান যে শর্তগুলোর মধ্যে যেকোনো একটি সত্য হলেই কাজ হবে, তখন or ব্যবহার করা হয়। যেমন: `if day == “Saturday” or day == “Sunday”:`। এটি সপ্তাহান্তের ছুটির লজিক চেক করতে ব্যবহৃত হতে পারে।
৩. not অপারেটর: এটি কোনো শর্তের ফলাফলকে উল্টে দেয়। অর্থাৎ, শর্তটি সত্য হলে ফলাফল মিথ্যা, আর মিথ্যা হলে সত্য। যেমন: `if not is_logged_in:`।
এই অপারেটরগুলো ব্যবহারের ফলে আপনার কোড অনেক ছোট এবং কার্যকর হয়ে ওঠে। উদাহরণস্বরূপ, আপনি যদি চেক করতে চান একজন ব্যক্তি ভোট দিতে পারবেন কি না, তবে আপনি সরাসরি লিখতে পারেন:
age = 20
has_voter_id = True
if age >= 18 and has_voter_id:
print("You can vote!")
else:
print("You cannot vote.")
দক্ষ পাইথন প্রোগ্রামার হতে হলে এই লজিক্যাল অপারেটরগুলোর ওপর নিয়ন্ত্রণ থাকা আবশ্যিক। কারণ জটিল গাণিতিক সমস্যা সমাধান বা ডেটা প্রসেসিংয়ের সময় এই অপারেটরগুলোই মূলত সিদ্ধান্ত নেওয়ার মূল ভিত্তি হিসেবে কাজ করে। সঠিক লজিক প্রয়োগ করতে পারলে আপনি খুব অল্প কোড লিখে অনেক বড় সমস্যা সমাধান করতে পারবেন।
সচরাচর জিজ্ঞাসা (FAQ)
প্রশ্ন ১: Python if elif else এর মধ্যে কোনটি আগে লিখতে হয়?
উত্তর: প্রথমে if লিখতে হয়। এরপর একাধিক শর্ত থাকলে elif লিখতে হয় এবং সবশেষে সব শর্ত না মিললে else লিখতে হয়। else সবসময় একদম শেষে বসে।
প্রশ্ন ২: আমি কি elif এর আগে else লিখতে পারি?
উত্তর: না, পাইথনে else সবসময় কন্ডিশনাল চেইনের শেষে বসাতে হয়। if এর ঠিক পরেই else লিখলে এরর আসবে।
প্রশ্ন ৩: elif এবং else এর মধ্যে পার্থক্য কী?
উত্তর: elif একটি নির্দিষ্ট শর্ত পরীক্ষা করে, যা সত্য হতে পারে বা মিথ্যা। কিন্তু else কোনো শর্ত পরীক্ষা করে না; এটি শুধুমাত্র তখনই কাজ করে যখন উপরের সবকটি শর্ত মিথ্যা প্রমাণিত হয়।
প্রশ্ন ৪: Python-এ কি multiple elif ব্যবহার করা সম্ভব?
উত্তর: হ্যাঁ, আপনি একটি if ব্লকের অধীনে যত খুশি তত elif ব্যবহার করতে পারেন। এটি একাধিক অপশন চেক করার জন্য ব্যবহৃত হয়।
প্রশ্ন ৫: if স্টেটমেন্টে কি কোনো শর্ত ছাড়াই কোড লেখা যায়?
উত্তর: না, if এর পরে অবশ্যই একটি শর্ত বা তুলনামূলক অভিব্যক্তি (Comparison expression) থাকতে হবে যা True অথবা False রিটার্ন করতে পারে।
উপসংহার
পরিশেষে বলা যায়, Python if elif else হলো পাইথন প্রোগ্রামিংয়ের মেরুদণ্ড। কোনো প্রোগ্রামকে বুদ্ধিমত্তা প্রদান করার জন্য এই কন্ডিশনাল স্টেটমেন্টগুলোর কোনো বিকল্প নেই। আপনি যদি ডেটা সায়েন্স, ওয়েব ডেভেলপমেন্ট বা অটোমেশনের মতো যেকোনো ক্ষেত্রে ক্যারিয়ার গড়তে চান, তবে এই লজিকগুলো আয়ত্ত করা আপনার জন্য বাধ্যতামূলক।
অনুশীলনের মাধ্যমে আপনি শিখতে পারবেন কীভাবে জটিল লজিকগুলোকে সহজভাবে প্রকাশ করা যায়। শুরুতে ছোট ছোট সমস্যা সমাধানের চেষ্টা করুন, যেমন একটি ক্যালকুলেটর তৈরি করা বা কোনো গেমের স্কোরিং সিস্টেম তৈরি করা। যত বেশি কোড করবেন, তত বেশি আপনার লজিক্যাল থিঙ্কিং উন্নত হবে।
আপনার পরবর্তী পদক্ষেপ: আজই পাইথন ইনস্টল করুন এবং উপরের উদাহরণগুলো আপনার কম্পিউটারে রান করে দেখুন। কোনো সমস্যা encountering করলে আমাদের কমেন্ট সেকশনে জানাতে ভুলবেন না! শুভ কোডিং!