গত সেশনগুলো থেকে আমরা পাইথন প্রোগ্রামের প্রাথমিক ধারণা পেয়েছি এবং ভ্যারিয়েবল সম্পর্কে জেনেছি। এবার আমরা পাইথন প্রোগ্রামে কীভাবে বিভিন্ন শর্ত ব্যবহার করা যায় সেই সম্পর্কে জানবো। এই অভিজ্ঞতার শেষে গিয়ে আমরা যে বিভিন্ন সমস্যার সমাধান করব তার প্রস্তুতি হিসেবেই কিন্তু আমরা পাইথন প্রোগ্রামিং এর এইসব কাজগুলো শিখছি। তাহলে চল আজকের সেশনটি শুরু করি।
অনেক সময় বাস্তব জীবনে এমন কিছু ঘটনা ঘটে যেখানে ফলাফল কোনো শর্তের উপর নির্ভরশীল।
ধরি আমাদের বিদ্যালয়ে একটি ক্রীড়া প্রতিযোগিতা অনুষ্ঠিত হচ্ছে। ১০০ মিটার দৌড়ে সবার আগে যে আসবে সে হবে প্রথম। এরপর যে আসবে সে হবে দ্বিতীয়। তারপর আসলে হবে তৃতীয়। আর এরপর যারা আসবে তাদের অনুপ্রেরণা দেওয়া হবে পরের বার আরও ভালো করার জন্য। তাহলে এখানে কিন্তু শর্তের উপস্থিতি আছে। শর্ত অনুযায়ী সবাই কিন্তু প্রথম হতে পারবে না বা সেরা তিনে আসতে পারবে না।
এখানে বিদ্যমান শর্তকে নিচের মত লেখা যায়-
যদি সবার আগে দৌড় শেষ করি : তাহলে প্রথম হতে পারব
অথবা যদি এরপরে দৌড় শেষ করি : তাহলে দ্বিতীয় হতে পারব
অথবা যদি তারপরে দৌড় শেষ করি : তাহলে তৃতীয় হতে পারব
অন্যথায় : পরের বার আরও ভালো করে চেষ্টা করব
এই যে আমরা লিখলাম যদি, এটাকে প্রোগ্রামিং করার সময় লেখা হয় ইংরেজিতে if ।
প্রোগ্রামে আমরা if লিখে কোনো শর্ত দিলে প্রোগ্রাম যাচাই করবে সেই শর্ত পূরণ হয়েছে কি না। যদি শর্ত পূরণ হয়, তাহলে if এর অধীনে লেখা কাজগুলো সম্পন্ন করবে।
যেমন, আমরা যদি এমন একটি প্রোগ্রাম লেখি-
if my_variable -5:
print('Value is five')
এর অর্থ হল, if দিয়ে আমরা একটি শর্ত দিয়েছি যে my_variable এর মান 5 এর সমান হতে হবে। শুধুমাত্র তাহলেই if এর শর্ত পূরণ হবে। আর শর্ত পূরণ হলে তখন প্রিন্ট করে আমরা জানিয়ে দিব Value is five
এখানে একটি বিষয় খেয়াল রাখতে হবে, আমরা যখন কোনো ভ্যারিয়েবলের মধ্যে কোনো তথ্য জমা রাখতে চাই, তখন আমরা এভাবে লিখি-
my_variable = 5
কারণ = হল একটি এসাইনমেন্ট অপারেটর, যা একটি মানকে এসাইন করে বা ভ্যারিয়েবলে জমা রাখে।
অপরদিকে আমরা যখন কন্ডিশনের শর্ত পূরণ হয়েছে কি না যাচাই করব, তখন একটি চিহ্ন দিলে শর্ত যাচাই করা যাবে না। তখন দিতে হবে== চিহ্ন। == চিহ্ন এর মানে হল এই চিহ্নের বামপাশে ও ডানপাশে থাকা মান সমান কি না সেটি যাচাই করা হচ্ছে।
তার মানে আমরা যখন লিখেছি my_variable 5 তখন যাচাই করা হচ্ছে my_variable এর মান 5 এর সমান কি না। my_variable এর মান 5 এর সমান হলেই শুধুমাত্র if এর শর্ত পূরণ হবে ও তখন: চিহ্নের পরে লেখা নির্দেশ মেনে কাজ করবে।
আবার if এর শর্ত যদি পূরণ না হয়, তখন আরও ভিন্ন কোনো শর্ত আছে কি না সেটি খুঁজতে থাকবে। এজন্য আমরা আরও ভিন্ন শর্ত দেবার জন্য লিখব clif
আমরা চাইলে একাধিক clif এর শর্ত দিতে পারি।
যেমন নিচের প্রোগ্রামটি দেখি-
my_variable = 3
if my_variable-5:
print("Value is five')
elif my_variable = 4:
print('Value is four')
elif my_variable - 3:
print("Value is three')
এখানে সবার আগে if এর শর্ত যাচাই হবে যে my_variable এর মান 5 কি না। যদি মান মিলে যায় তাহলে if এর কাজ সম্পন্ন করবে, কিন্তু পরের শর্তগুলো আর যাচাই করবে না।
আর যদি if এর শর্ত পূরণ না হয়, তাহলে পরের elif এ চলে যাবে এবং যাচাই করবে my_variable এর মান 4 কি না। যদি শর্ত এবার পূরণ হয়ে যায় তাহলে পরের elif' আর যাচাই করবে না। কিন্তু এবারও যদি elif এর শর্ত পূরণ না হয় তাহলে পরের clif এর কাছে চলে যাবে। এভাবে শর্ত যাচাই চলতে থাকবে শর্ত পূরণ না হওয়া পর্যন্ত অথবা সব শর্ত যাচাই শেষ না হওয়া পর্যন্ত। তবে খেয়াল করে দেখ, if my_variable = 5: লেখার পর পরের লাইনে আমরা if এর ঠিক নিচ বরাবর থেকে আবার পরের অংশ লেখা শুরু করি নি। আমরা কিছুটা ফাঁকা রেখেছি। আসলে এখানে চারটি স্পেস সমপরিমাণ ফাঁকা রেখে তারপর কোড লেখা হয়েছে। এটাকে বলা হয় ইনডেনটেশন (Indentation)। এটা পাইথনে খুব গুরুত্বপূর্ণ। যদি আমরা যথাযথ ইনডেনটেশন না দেই তাহলে পাইথনের কোড রান হবে না, আমরা এরর দেখতে পাব। যখনই if এর অধীনে কোনো লাইন আমরা লেখব, সেগুলো অবশ্যই চারটি ফাঁকা স্পেস রেখে কাজ করবে। এজন্য আমরা লিখেছিলাম
if my_variable=5:
print('Value is five')
এটা না লিখে যদি লিখতাম- if my variable-5:
print('Value is five')
তাহলে সেটা ভুল হত ও কোড কাজ করত না।
আবার একইভাবে clif এর সময়েও ইনডেনটেশন অনুসরণ করতে হয়। তাই আমরা লিখেছিলাম-
elif my_variable = 4:
print('Value is four')
আবার একটি প্রোগ্রামে কোনো শর্তই যদি পূরণ না হয় তাহলে কি করব? সেজন্য আমরা চাইলে একটি else রাখতে পারি। কোনো শর্তই পূরণ না হলে সেক্ষেত্রে else এর মধ্যে বলা কাজটি সম্পন্ন করবে।
যেমন, আমরা যদি নিচের প্রোগ্রাম লেখি my_variable = 2
if my_variable-5:
print('Value is five')
elif my_variable - 4:
print('Value is four')
elif my_variable - 3:
print('Value is three')
else:
print('No condition was true')
খেয়াল করে দেখি, else: লেখার পরেও আমাদের ইনডেনটেশন অনুসরণ করতে হয়েছে।
Thonny সফটওয়্যার আমরা পাইথন প্রোগ্রাম লিখলে নিজে নিজেই প্রয়োজনমত ইনডেনটেশন নিয়ে নিবে, আমাদের খুব একটা ভাবতে হবে না। কিন্তু কাগজে বা বইয়ে প্রোগ্রাম লেখার সময় অবশ্যই আমরা নিজেরা খেয়াল করে প্রয়োজন অনুসারে ইনডেনটেশন দিব।
চল এবার দেখি এমন একটি প্রোগ্রামের বিভিন্ন ধাপে কীভাবে আমরা শর্ত যাচাই করে আউটপুট বের করতে পারি। এজন্য এই প্রোগ্রামের জন্য নিচের ছক পুরণ করি
my_variable এর আসল মান কত?
|
প্রথম শর্ত যাচাই- my_variable এর মান কি 5? উত্তর হ্যাঁ হলে প্রিন্ট করব- Value is five এরপর থেমে যাই উত্তর না হলে পরের ধাপে চলে যাই |
দ্বিতীয় শর্ত যাচাই- my_variable এর মান কি 4? উত্তর হ্যাঁ হলে প্রিন্ট করব- Value is four এরপর থেমে যাই উত্তর না হলে পরের ধাপে চলে যাই |
তৃতীয় শর্ত যাচাই- my_variable এর মান কি 3? উত্তর হ্যাঁ হলে প্রিন্ট করব- Value is three এরপর থেমে যাই উত্তর না হলে পরের ধাপে চলে যাই |
যদি কোনো শর্তই পূরণ না হয়, তাহলে else এর ভিতর থাকা কাজ করব। তাই প্রিন্ট করি No condition was true |
আমাদের চূড়ান্ত সিদ্ধান্ত -
|
এভাবে আমরা if, elif, else ব্যবহার করে বাস্তব জীবনের বিভিন্ন সমস্যা সমাধান করতে পারব।
এবারে পরের প্রোগ্রামগুলো দেখি ও ছকে প্রোগ্রামগুলোর আউটপুট লিখে ফেলি-
প্রোগ্রাম ১
running_time = 40 if running_time >= 60: print('Great! Have a healthy routine like this everyday') elif running_time >= 40: print('Good job! Keep running everyday') else: print('You need to run more everyday!") |
আউটপুট:
|
প্রোগ্রাম ২ today temperature = 15 if today temperature >= 30: print('It is very hot today!") elif today temperature >= 20: print("Temperature is tolerable today') else: print('It is very cold today!') |
আউটপুট:
|
আরও দেখুন...