অপারেটর

অপারেটর

আমরা ম্যাথমেটিকসে অপারেটর নিয়ে কাজ করেছি। এই যে আমরা বলি 10+15 = 25, এখানে + (প্লাস) এবং = (ইক্যুয়াল) হলো অপারেটর। অন্যদিকে 10, 15, 25 হলো অপারেন্ড। পাইথনেও এ রকম অনেক অপারেটর রয়েছে। টাইপ অনুসারে এদের কয়েকভাবে ভাগও করা যায়।

অ্যারিথমেটিক (Arithmetic) অপারেটর

বিভিন্ন গাণিতিক অপারেটরগুলো এর অন্তর্গত। এই যে একটু আগে + এর কথা বললাম, এটা একটা অ্যারিথমেটিক অপারেটর।

অপারেটর বর্ননা
+ অ্যাডিশন অপারেটর। দুই পাশের অপারেন্ড দুইটাকে যোগ করে।
- সাবট্রাকশন অপারেটর। বাম পাশের অপারেন্ড থেকে ডান পাশের অপারেন্ড বিয়োগ করে।
* মাল্টিপ্লিকেশন অপারেটর। দুইটা অপারেন্ডের একটাকে অন্যটা দিয়ে গুণ করে।
/ ডিভিশন অপারেটর। বাম পাশের অপারেন্ডকে ডান পাশের অপারেন্ড দিয়ে ভাগ করে।
% মডুলাস অপারেটর। বাম পাশের অপারেন্ডকে ডান পাশের অপারেন্ড দিয়ে ভাগ করে ভাগশেষ রিটার্ন করে।
** এক্সপোনেন্ট অপারেটর। বাম পাশের অপারেন্ড হয় বেস আর ডান পাশের অপারেটর হয় পাওয়ার।
// ফ্লোর ডিভিশন অপারেটর। সাধারণত দশমিকের পরের সংখ্যা স্কিপ করে যায়।

অ্যারিথমেটিক অপারেটরের কিছু ব্যবহার দেখা যাক।

>>> 3+2
5
>>> 10-4
6
>>> 6*7
42
>>> 48/3
16.0
>>> 10%3
1
>>> 3 ** 2
9
>>> 5 + (9 * 3)
32
>>> -13 + 5
-8
>>> 1.0/2.0
0.5
>>> 1.0//2.0
0.0

কমপারিজন (Comparison) অপারেটর

কম্পেয়ার বা তুলনা করার জন্য এই অপারেটরগুলো ব্যবহার করব আমরা।

অপারেটর বর্ণনা
== যদি দুই পাশের অপারেন্ড দুইটি সমান হয় তবে শর্তটা সত্যি হয়।
!= যদি দুই পাশের অপারেন্ড দুইটি সমান না হয় তবে শর্তটা সত্যি হয়।
> যদি ডান পাশের অপারেন্ডের চেয়ে বাম পাশের অপারেন্ড বড় হয় তবে শর্তটা সত্যি হয়।
< যদি ডান পাশের অপারেন্ডের চেয়ে বাম পাশের অপারেন্ড ছোট হয় তবে শর্তটা সত্যি হয়।
>= যদি ডান পাশের অপারেন্ডের চেয়ে বাম পাশের অপারেন্ড বড় বা সমান হয় তবে শর্তটা সত্যি হয়।
<= যদি ডান পাশের অপারেন্ডের চেয়ে বাম পাশের অপারেন্ড ছোট বা সমান হয় তবে শর্তটা সত্যি হয়।

বুলিয়ান (Boolean)

The best thing about a boolean is even if you are wrong, you are only off by a bit.

আগের চাপ্টারেই আমরা জেনেছি, বুলিয়ান হল সত্য-মিথ্যার ধারক। যে ভ্যারিয়েবল True বা False ধারণ করে তাই বুলিয়ান টাইপের ভ্যারিয়েবল। আর যখন কোন এক্সপ্রেশন সত্য বা মিথ্যা নির্ধারণ করে তখন তাকে বুলিয়ান এক্সপ্রেশন বলে। কমপারিজন অপারেটর ব্যবহার করে আমরা এখন কয়েকটা বুলিয়ান এক্সপ্রেশন পয়দা করে দেখব।

>>> 2 == 2
True
>>> 2 != 2
False
>>> 5 < 3
False
>>> 5 > 3
True
>>> 5 <= 3
False
>>> 5 >= 3
True

অ্যাসাইনমেন্ট (Assignment) অপারেটর

আগের চাপ্টারে আমরা যে a = 10 স্টেটমেন্ট লিখেছিলাম সেখানে = চিহ্নটা হল অপারেটর।

অপারেটর বর্ণনা
= ডান পাশের অপারেন্ড বাম পাশের অপারেন্ডে অ্যাসাইন করে।
+= দুই পাশের অপারেন্ড যোগ করে যোগফল বাম পাশের অপারেন্ডে অ্যাসাইন করে।
-= বাম পাশের অপারেন্ড থেকে ডান পাশের অপারেন্ড বিয়োগ করে বিয়োগফল বাম পাশের অপারেন্ডে অ্যাসাইন করে।
*= দুই পাশের অপারেন্ডের একটাকে অন্যটা দিয়ে গুণ করে গুণফল বাম পাশের অপারেন্ডে অ্যাসাইন করে।
/= বাম পাশের অপারেন্ডকে ডান পাশের অপারেন্ড দ্বারা ভাগ করে ভাগফল বাম পাশের অপারেন্ডে অ্যাসাইন করে।

অ্যাসাইনমেন্ট অপারেটরের কিছু ব্যবহার দেখা যাক।

>>> a = 5
>>> a
5
>>> a += 2
>>> a
7
>>> a -= 3
>>> a
4
>>> a *= 3
>>> a
12
>>> a /= 2
>>> a
6.0

লজিকাল (Logical) অপারেটর

পাইথনে লজিকাল অপারেটর মাত্র তিনটা।

অপারেটর বর্ণনা
and যদি দুইটি অপারেন্ডই সত্যি হয়, কেবল তবেই শর্তটা সত্যি হয়।
or দুইটি অপারেন্ডের যেকোন একটি সত্যি হলেই শর্তটা সত্যি হয়।
not না-বোধক বুঝায়, সত্য অপারেন্ডের আগে not দিলে তা মিথ্যা হয়ে যায় আর মিথ্যা অপারেন্ডের আগে not দিলে তা সত্য হয়ে যায়।

বুলিয়ান এক্সপ্রেশনের সাথে লজিকাল অপারেটরের ব্যবহার প্রচুর। আমরা কয়েকটা উদাহরণ দেখব।

>>> 2 == 2 and 3 == 3
True
>>> 2 == 2 and 3 == 4
False
>>> 2 == 2 or 3 == 4
True
>>> 2 == 5 or 3 == 4
False
>>> 2 == 5
False
>>> not 2 == 5
True

মেম্বারশিপ (Membership) অপারেটর

পাইথনে কেবলমাত্র দুইটা মেম্বারশিপ অপারেটর আছ।

অপারেটর বর্ননা
in যদি বাম পাশের অপারেন্ডটি ডান পাশের অপারেন্ডের ভিতর খুঁজে পাওয়া যায়, তবেই কেবল শর্তটা সত্যি হয়।
not in যদি বাম পাশের অপারেন্ডটি ডান পাশের অপারেন্ডের ভিতর খুঁজে না পাওয়া যায়, তবেই কেবল শর্তটা সত্যি হয়।

মেম্বারশিপ অপারেটরের কিছু উদাহরণ দেখা যাক।

>>> a = 'Bangladesh'
>>> b = 'desh'
>>> b in a
True
>>> a in b
False

কি, বুঝতে পারলাম না? সমস্যা নাই। একটা সময়ে এমনিতেই বুঝতে পারব। তখন উদাহরণটা আবার দেখে নিলেই চলবে।

আইডেন্টিটি (Identity) অপারেটর

পাইথনে কেবলমাত্র দুইটা আইডেন্টিটি অপারেটর আছ।

অপারেটর বর্ননা
is যদি দুই পাশের অপারেন্ড দুইটি একই অবজেক্ট বা জিনিসকে নির্দেশ করে, কেবল তবেই শর্তটা সত্যি হয়।
is not যদি দুই পাশের অপারেন্ড দুইটি একই অবজেক্ট বা জিনিসকে নির্দেশ না করে, কেবল তবেই শর্তটা সত্যি হয়।

আইডেন্টিটি অপারেটরের কিছু উদাহরণ দেখা যাক। না বুঝতে পারলে এড়িয়ে যান। বোঝার জন্য এখনই তাড়াহুড়া করার দরকার নেই।

>>> a = 'Bangladesh'
>>> b = 12
>>> a is b
False
>>> a is not b
True

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

>>> a = 1
>>> b = 1
>>> b is a
True
>>> a = 6000
>>> b = 6000
>>> b is a
False

একটা বিদঘুটে ঘটনা। কিন্তু কী ব্যাখ্যা এর? এর রহস্য তদন্ত করার ভার আপনাদের ওপর।

রহস্য উদ্‌ঘাটন করতে পারবেন? কী মনে হয়? ভয় কী!

ছোটবেলায় তিন গোয়েন্দা সিরিজ পড়েছেন না?

তো, হয়ে যান কিশোর পাশা, মুসা আমান বা রবিন মিলফোর্ড আর বেরিয়ে পড়ুন রহস্য উদ্‌ঘাটনে। রকিব হাসান স্যার অভিশাপ দিয়ে গেছেন, ‘এই পুরো বই পড়ার পরেও যে এই রহস্যের উদ্‌ঘাটন করতে পারবে না, সে চিরজীবন চিলেকোঠায় ভূত হয়ে থাকবে।’

comments powered by Disqus