যদি   কেউ কথা না কয়,   ওরে ওরে ও অভাগা,
যদি   সবাই থাকে মুখ ফিরায়ে   সবাই করে ভয়--
                      তবে   পরান খুলে
ও তুই   মুখ ফুটে তোর মনের কথা   একলা বলো রে ॥
রবীন্দ্রনাথ ঠাকুর

৫ যদির কথা নদীর জলে

একদিন খুব ভোরে লাল সূর্যটা জানালা দিয়ে উঁকি মেরে হুকুশ পাকুশের ঘুম ভেঙ্গে দিলো। তারপর হুকুশ পাকুশ খুব কষ্ট করে বাম চোখটুকু ইকটু খুললো আর ভাবলো "আজকে কি বার?"। তারপর ভাবলো, যদি আজকে শুক্রবার হয়, তাহলে আমি আরিকটু ঘুমাবো। নাহলে স্কুলে যেতে হবে।

আমরা যখন কম্পিউটারকে বলি কিসের পর কি করতে হবে, তখন মাঝে মাঝে ওকে শিখিয়ে দিতে হয়, কি হলে কি করতে হবে। এই জিনিসটাকে ইংরেজীতে বলে কন্ট্রোল ফ্লো। সহজ ভাষায়, ওকে একটা ছোট্ট বাচ্চার মতো করে বুঝিয়ে বলতে হয় - যদি (এটা হয়) তাহলে তুমি (এটা করবা), অথবা যদি (ওটা হয়) তাহলে তুমি (ওটা করবা), নাইলে তুমি (ওইটা করবা)। বুঝছো হুকুশ পাকুশ?

যেমন উপরের চিন্তাটুকুর প্রোগ্রামটা হবে এরকম

তুমি যদি today = "tuesday" করে দাও, তাহলে তোমাকে প্রোগ্রামটা বলবে স্কুলে যেতে! খেয়াল করো হুকুশ পাকুশ, এখানে কিন্তু দুইটা সমান সমান চিহ্ণ। বাংলায় যেমন আমরা বলি - এটা সমান সমান ওটা - ঠিক সেরকম। একটা সমান চিহ্ণ দিয়ে আমরা ভ্যারিয়েবল এর মান বসাই। কিন্তু যখনই না কোন কিছু সমান সমান কিনা পরীক্ষা করা লাগে - তখন আমরা দুইটা সমান চিহ্ণ লিখি।

তারপর ধরো সোমবার আমাকে আমার ছোট ভাইটাকে নিয়ে দাঁতের ডাক্তারের কাছে যেতে হবে। সেক্ষেত্রে ব্যাপারটা হবে ঠিক এরকম।

এখানে elif মানে হচ্ছে else if । এভাবে লেখা হয়, কারণ প্রোগ্রামাররা ভীষণ অলস। পুরোটা লিখতে গেলে তাদের হাত ব্যাথা করে।

৫.১ বুলিয়ান অপারেটর

হুকুশ পাকুশের একদিন খুব শখ হলো একটা ছোট্ট নরম সাদা বাবু খরগোশ কেনার। তারপর ওর বাবা ওকে বললো, "তুমি যদি (লক্ষ্ণী হয়ে থাকো) এবং যদি (মায়ের কথা শুনো) তাহলে তোমাকে (খরগোশ কিনে দিবো)"। তারপর হুকুশ পাকুশ মুখটা ফুলিয়ে বললো, "কিন্তু লক্ষ্ণী হয়ে থাকা খুব ক-ঠি-ন!"। তখন ওর বাবা ওকে বললো, "তুমি যদি (সব হোমওয়ার্ক) করে ফেলো অথবা যদি (অঙ্ক পরীক্ষার সব পড়া পড়ে ফেলো) তাহলে তোমাকে (খরগোশ কিনে দিবো)"।

দেখো, এই ক্ষেত্রে শুধু যদি দিয়ে সবকিছু বলা যাচ্ছে না। আমাদের "অথবা" আর "এবং" ব্যবহার করতে হচ্ছে। এই শব্দগুলো বলা হয় বুলিয়ান অপারেটার। বুলিয়ান নামটা এসেছে জর্জ বুল নামের একটা গণিতবিদের কাছ থেকে। জর্জ বুল বলতো কি, "অঙ্ক কেন এত কঠিন হবে? অঙ্কের উত্তর হবে শুধু হ্যাঁ আর না দিয়ে। তাহলে অঙ্ক কত্ত সহজ হয়ে যায়!" তো জর্জ বুল বসে বসে একটা অঙ্ক শাস্ত্র লিখে ফেললো, যেখানে শুধু হ্যাঁ আর না দিয়ে অনেক অঙ্ক করে ফেলা যায়।

  • সমান সমান অপারেটর (==)
  • এবং (and)
  • অথবা (or)

তাহলে যদি কথাটা এমন হয় যে আজকে সোমবার কিংবা রবিবার হয় তাহলে স্কুলে খরগোশটাকে নিয়ে যাবো তাহলে সেটা হবে এরকম

খেয়াল করো, এখানে if লেখার পর এর পরের লাইন লেখার সময় কিন্তু একটা ট্যাব (tab) দিতে হবে। তাহলে কম্পাইলার বুঝবে কোন অংশটার ভিতরে কোন অংশটা। যেমন এখানে প্রথম if টার ভিতরে খরগোশকে স্কুলে নেয়ার অংশটা, দ্বিতীয় if টার ভিতরে না নেয়ার অংশটা।

৫.২ কম্পারিজন অপারেটর

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

  • > greater than
  • >= greater or equal
  • < less than
  • <= less or equal

তিনশর বেশি থাকলে সিনেমা যদি দেখতে যাই তাহলে কোডটা হবে এরকম

মাঝে মাঝে আমাদের অনেক জটিল ধরণের চিন্তা করতে হয়। ধরো রবি আর কবি দুই বন্ধু যারা সিনেমা দেখতে যাবে - তাহলে আজকে অবশ্যই সোমবার হতে হবে আর দুইজনের কাছেই আলাদা আলাদা করে ৩০০ এর বেশি টাকা থাকতে হবে। তাহলে কোড টা হবে এরকম

এখন এমনও হতে পারে রবির কাছে যদি ছয়শ টাকার বেশি থাকে তাহলে সে কবির টিকেটের টাকা দিয়ে দেবে। তখন আমাদের লজিকটা হচ্ছে

যদি( আজকে সোমবার হয় এবং
  (রবির কাছে ছয়শ টাকার বেশি থাকে
    অথবা ( রবি আর কবি দুই জনের কাছে তিনশর বেশি টাকা আছে ))
      তাহলে সিনেমা দেখতে যাবে

খেয়াল করো এখানে ব্র্যাকেটটা কিন্তু খুব গুরুত্বপূর্ণ। তুমি যদি ব্র্যাকেটগুলো সরিয়ে ফেলো তাহলে কম্পাইলার ঠিকমতো বুঝতে পারবে না, কোনটা আর কোনটার মধ্যে কিভাবে তুলনা করতে হবে।

যখন লাইনগুলো বেশি বড় হয়ে যায় পাইথনে আমরা একটা ব্যাকস্ল্যাশ (\) লিখে আবার পরের লাইন থেকে শুরু করি। যেমন উপরের কোডটা হবে এমন।