পাইথন অপারেটর
আগের অধ্যায় গুলোতে আমরা একটা ভ্যারিয়েবলে কোন ভ্যালু এসাইন করতে সমান চিহ্ন (=) ব্যবহার করেছি। এই সমান চিহ্ন হচ্ছে একটা অপারেটর, যাকে বলা হয় এসাইন অপারেটর। এছাড়া প্রথম অধ্যায় আমরা যোগ, বিয়োগ, গুণ, ভাগ, ইত্যাদি করা শিখেছি। এগুলোও হচ্ছে অপারেটর। এগুলোকে বলা হয় এরিথম্যাটিক অপারেটর। এরিথম্যাটিক অপারেটর, এসাইন অপারেটর ছাড়াও আরো অনেক ধরণের অপারেটর রয়েছে। এ অধ্যায় আমরা সেগুলো সম্পর্কে জানব।
অপারেটর গুলো যে ভ্যারিয়েবল বা যে ডেটার উপর কাজ করে, তাকে আমরা বলি অপারেন্ড (Operand)। যেমন 4 + 5 এ 4 এবং 5 হচ্ছে অপারেন্ড এবং + হচ্ছে অপারেটর।
কিছু কিছু অপারেটরের জন্য একটা অপারেন্ড লাগে। কিছু কিছু অপারেটরের জন্য লাগে দুই বা তার অধিক অপারেন্ড।
পাইথন প্রোগ্রামিং এ যে অপারেটর গুলো নিয়ে কাজ করা যায়, সেগুলো হচ্ছেঃ
- অ্যারিথমেটিক অপারেটর (Arithmetic Operators)
- এসাইনমেন্ট অপারেটর (Assignment Operators)
- রিলেশনাল বা কম্পারিজন অপারেটর (Relational or Comparison Operators)
- লজিক্যাল অপারেটর ( Logical Operators)
- বিটওয়াইজ অপারেটর (Bitwise Operators)
- মেম্বারশিপ অপারেটর (Membership Operators)
- আইডেন্টিটি অপারেটর (Identity Operators)
অ্যারিথমেটিক অপারেটর
পাটি গণিতে আমরা যে সব অপারেটর ব্যবহার করেছি যেমন যোগ, গুন, ভাগ ইত্যাদি। সে গুলোই হচ্ছে অ্যারিথম্যাটিক অপারেটর (Arithmatic Oparetors)। পাইথনের অ্যারিথমেটিক অপারেটর গুলো হচ্ছেঃ
| অপারেটর | ব্যাবহার |
| + | যোগ |
| – | বিয়োগ |
| * | গুণ |
| / | ভাগ |
| % | মডুলাস |
| ** | এক্সপোনেন্ট বা পাওয়ার |
| // | ফ্লোর ডিভিশন |
অ্যারিথমেটিক অপারেটর গুলোর প্রয়োগ
এর আগের প্রোগ্রাম গুলোতে আমরা এই অ্যারিথম্যাটিক অপারেটর গুলো ব্যবহার করেছি। এগুলো গণিতে আমরা যেভাবে কাজ করে, সেভাবে পাইথন প্রোগ্রামিং এ ও কাজ করবে। এগুলো সহজে কিভাবে প্রোগ্রামে কাজে লাগানো যা, তা আমরা ছোট খাটো অংক করে দেখতে পারি। পাইথনে সহজেই আমরা যোগ, বিয়োগ, গুণ, ভাগ করে ফেলতে পারি।
যোগঃ
x = 50 y = 11 z = x + y print(z)
বিয়োগঃ
x = 50 y = 11 z = x - y print(z)
বা এভাবেঃ
x = 50 y = 11 print ( x – y)
গুনঃ
x = 50 y = 11 z = x * y print(z)
ভাগঃ
x = 50 y = 11 z = x / y print(z)
রিমাইন্ডার বা ভাগশেষ
যোগ, বিয়োগ, গুণ, ভাগ চিহ্ন এরপর আমরা আরকেটা চিহ্ন এর সাথে পরিচিত হব। আর তা হচ্ছে মডুলাস (%) বা মড। আমরা একে শতকরা বা পার্সেন্ট চিহ্ন হিসেবে জানতাম। প্রোগ্রামিং এ এর কাজ হচ্ছে ভাগ শেষ বের করা। যেমনঃ
x = 50 y = 11 z = x % y print(z)
যা আউটপুট দিবে 6।
৫০ কে ১১ দিয়ে ভাগ দিলে ভাগশেষ থাকে ৬। কিভাবে, তা সহজে আমরা বের করে ফেলতে পারি। যেমন ১১ কে ৪ দিয় গুন করলে হয় ৪৪। ৫০ থেকে ৪৪ গেলে থাকে ৬। আমরা ছোটবেলায় যেভাবে ভাগশেষ বের করতাম, সেভাবে কাগজে কলমে করে দেখতে পারি।
ঋণাত্মক সংখ্যার ক্ষেত্রে একটু অন্যরকম আউটপুট দিবে। ভাজক যদি ঋণাত্মক সংখ্যা হয়, তাহলে ভাগশেষ ও ঋণাত্মক হবে। নিচের প্রগ্রামটি দেখিঃ
print(15 % 4) print(-15 % 4) print(15 % -4) print(-15 % -4)
আউটপুট হচ্ছেঃ
3 1 -1 -3
আমরা জানি ঋণাত্মক সংখ্যার ক্ষেত্রে যত উপরের দিকে যায়, তত সংখ্যার মান কমতে থাকে। এই জন্য -15 % 4 এর ক্ষেত্রে আমরা ভাগশেষ পেয়েছি 1। কারণ -16 থেকে -15 বড়। তো ছোট যে সংখ্যা -১৬, তার সাথে এক যোগ করলে হবে -১৫। এ জন্য print(-15 % 4) এর ক্ষেত্রে আমরা পেয়েছি 1। বুঝতে অসুবিধে হলে ক্যালকুলেটর অথবা কাগজে কলমে হিসেব করে দেখা যেতে পারে।
মডুলাস অ্যারিথমেটিক
মড ( Mode – %) কে বলা হয় মডুলাস অপারেটর। একটু আগে জেনেছি যে এর মানে মূলত ভাগশেষ ভ্যালু। এই Mode (%) নিয়ে কাজ করার একটা সুন্দর নাম রয়েছে, যাকে বলে Modulus Arithmetic। মডের এর অনেক কাজ রয়েছে। প্রতিদিন ব্যবহার করি, এমন একটা উদাহরন দেওয়া যাক।
আমরা প্রতিদিন যে সময় হিসেব করি, তা একটা মডুলাস অ্যারিথম্যাটিক বা মডুলাস পাটীগণিত। আমরা যদি ১২ ঘন্টার ঘড়ির কথা চিন্তা করি, তাহলে দেখব ১২ এর পর ১৩ না হয়ে ১ টা ধরি আমরা। আর ঘড়ির এই হিসাবকে বলা যায় ১২ এর মডুলাস অ্যারিথম্যাটিক। আমরা করি কি, ঘন্টাকে ১২ দিয়ে ভাগ করে দি। ১ টা বাজলেও ১২ দিয়ে ভাগ করি। ২ টা বাজলেও। তেমনি ১৫টা বাজলেও। তো যখন ১৫টা বাজে, তখন আমরা মুলত দেখি (১৫%১২) = ৩ বা তিনটা। আস্তে আস্তে আমরা এরকম অনেক গুলো মডুলাস অ্যারিথম্যাটিক নিয়ে কাজ করতে পারব।
মূলত মডের কাজ হচ্ছে একটা লিমিট সেট করে দেওয়া। ঐ লিমিট ক্রস করলে আবার প্রথম থেকে কাউন্ট শুরু করা। ঘড়ির টাইমের ক্ষেত্রে যেমন হয়, তেমনি।
২৪ ঘন্টার ঘড়ি গুলোতে ২৪ হচ্ছে সর্বোচ্চ ভ্যালু। তো ২৪ এর পর ২৫ না হয়ে হয় (২৫%২৪) = ১।
১৫%৪ = কত হবে?
১৫%৪ এটার উত্তর হবে ৩ কারন ১৫ কে ৪ দ্বারা ভাগ করলে ভাগশেষ থাকে ৩।
৪.১.২ এক্সপোনেন্ট অপারেটর
যদি আমরা লিখি 10*6 তাহলে পাবো 60। একটা এসটেরিক্স (*) হচ্ছে সাধারণ গুণ করার অপারেটর। কিন্তু যদি লিখি 10**6 মানে দুইটা এসটেরিক্স ব্যবহার করি, তাহলে এর মানে হছে 10 to the power 6 বা 106। এবং যার মান হবে 1000000। অর্থাৎ a**b এর মানে ab। নিচের প্রোগ্রামটা রান করে দেখতে পারি।
print(4**3)
যা আউটপুট দিবেঃ 64
ফ্লোর ডিভিশন
7 কে 2 দ্বারা ভাগ করতে আমরা লিখি 7/2। আর এর মান পাবো 3.5। কিন্তু যখন 7//2 লিখব, তখন মান পাবো 3। এটাকে বলে ফ্লোর ডিভিশন। এটি ভাগফল হিসেবে ভগ্নাংশের কাছাকাছি পূর্ণ সংখ্যা রিটার্ণ করে।
এটি ধণাত্ত্বক ভাজ্য অথবা ভাজকের ক্ষেত্রে দশমিকের পরের সংখ্যা বাদ দিয়ে পূর্ণ সংখ্যা রিটার্ণ করে। আবার যদি ভাজ্য অথবা ভাজক ঋণাত্ত্বক হয়, তাহলে পরবর্তী ঋণাত্ত্বক সংখ্যা রিটার্ণ করবে। যেমন print(-11//3) ক্ষেত্রে রিটার্ণ করবে -4।
print(7//2) print(-11//3) print(-11//-3) print(11//-3)
আউটপুট পাবোঃ
3 -4 3 -4
এসাইনমেন্ট অপারেটর (Assignment operator)
ভ্যারিয়েবলে কোন ভ্যালু এসাইন করা হচ্ছে এসাইনমেন্ট অপারেটরের কাজ। আগের অধ্যায় গুলোতে আমরা কিভাবে একটা ভ্যারিয়েবলে এসাইন করা হয়, তা শিখেছি। আমরা আগে শুধু একটা মাত্র এসাইনমেন্ট অপারেটর Equal to (=) এসাইনমেন্ট অপারেটর ব্যবহার করেছি। এটি ছাড়াও আরো অনেক গুলো এসাইনমেন্ট অপারেটর রয়েছে। যেমনঃ
- যোগ করে এসাইন (Add & assign) : +=
- বিয়োগ করে এসাইন (Subtract & assign) : -=
- গুণ করে এসাইন (Multiply & assign) : *=
- ভাগ করে এসাইন (Divide & assign) : /=
- মড করে এসাইন (Modulus & assign) : %=
- এক্সপোনেন্ট ভ্যালু নিয়ে এসাইন (Exponent & assign) : **=
- ফ্লোর ভ্যালু নিয়ে এসাইন (Floor & assign) : //=
যোগ করে এসাইন করা ( Add & assign) : +=
যোগ করে এসাইন করাকে বলতে বলা যায় add & assign। এটাকে সাধারণত এভাবে লেখা হয়ঃ
x += y
যা মূলত x = x + y এর সমান। দ্রুত লেখার জন্য বা কোড কমানোর জন্য সর্ট ফরমে লেখা হয়।
মনে করি x=3 , y=5.
যদি লেখা হয়: x+=y তাহলে x এর মান হবে x = x+y অর্থাৎ x = 8। আমরা যদি নিচের প্রোগ্রামটা রান করে দেখি, তাহলে আউটপুট পাবো 8।
x=3 y=5 x+=y print(x)
x = x+y লেখা এবং x+=y লেখা একই অর্থ বহন করে।
বিয়োগ করে এসাইন (Subtract & assign) : -=
দুইটা ভ্যালু বিয়োগ করে একটা ভ্যারিয়েবলে রাখার সর্ট ফরম হচ্ছে এই বিয়োগ করে এসাইন বা Subsctact & Assign। যাকে সাধারণত নিচের মত করে লেখা হয়।
x -= y
যার পূর্ণরূপ হচ্ছেঃ
x = x - y
মনে করি x = 8 , y = 5।
যদি লেখা হয়ঃ x -= y তাহলে x এর মান হবে x = x – y অর্থাৎ x = 3।
x = 8 y = 5 x -= y print(x)
উপরের প্রোগ্রামটা রান করিয়ে দেখলে আমরা আউটপুট পাবোঃ 3
গুণ করে এসাইন (Multiply & assign) : *=
গুণ করে এসাইনকে বলতে পারি Multiply & Assign। যা নিচের মত করে লেখা হয়ঃ
x *= y
যার পূর্ণরূপ হচ্ছেঃ
x = x * y
নিচের প্রোগ্রামটি রান করে দেখিঃ
x = 8 y = 5 x *= y print(x)
x এর ভ্যালু প্রিন্ট করলে আমরা পাবো 40;
ভাগ করে এসাইন (Divide & assign) : /=
ভাগ করে এসাইনকে বলতে পারি Divide & Assign। যা নিচের মত করে লেখা হয়ঃ
x /= y
যার পূর্ণরূপ হচ্ছেঃ
x = x / y
নিচের প্রোগ্রামটি রান করে দেখিঃ
x = 12 y = 3 x /= y print(x)
x এর ভ্যালু প্রিন্ট করলে আমরা পাবো 4.0।
মড করে এসাইন (Modulus & assign) : %=
মড করে এসাইন এর ক্ষেত্রে এর ডান পাশের অপারেন্ড এর মড ভ্যালু বাম পাশের ভ্যারিয়েবলে এসাইন করে।
যা নিচের মত করে লেখা হয়ঃ
x //= y
যার পূর্ণরূপ হচ্ছেঃ
x = x // y
ধরে নেই x = 11, y = 3। নিচের প্রোগ্রামটি রান করে দেখিঃ
x = 11 y = 3 x %= y print(x)
Mode (%) মানে আমরা জানি ভাগশেষ। তাই আমরা এখানে x কে y দিয়ে ভাগ করলে যে ভাগশেষ থাকবে, তাই পাবো। এখানে x এর ভ্যালু পাবো 2।
এক্সপোনেন্ট ভ্যালু নিয়ে এসাইন (Exponent & assign) : **=
এক্সপোনেন্ট ভ্যালু নিয়ে এসাইন এর ক্ষেত্রে বাম পাশের ভ্যালুর সূচক হিসেবে ডান পাশের ভ্যালুটি ব্যবহার হয়। এবং এই এক্সপোনেন্ট বা সূচক মান নিয়ে বাম পাশের ভ্যারিয়েবলে এসাইন করা হয়।
যা নিচের মত করে লেখা হয়ঃ
x **= y
যার পূর্ণরূপ হচ্ছেঃ
x = x ** y
আরো সহজ ভাবে বললে x = xy
ধরে নেই x = 2, y = 3। তাহলে x **= y এর মানে হবে x = 23। নিচের প্রোগ্রামটি রান করে দেখিঃ
x = 2 y = 3 x **= y print(x)
যেখানে আমরা আউটপুট পাবো ৮।
ফ্লোর ভ্যালু নিয়ে এসাইন (Floor & assign) : //=
ফ্লোর ইকুয়াল টু অপারেটরের কাজ হচ্ছে এর অপারেন্ডের ভ্যালু দুইটাকে ভাগ করে তার ফ্লোর ভ্যালু নিয়ে তা বাম পাশের ভ্যারিয়েবলটিতে এসাইন করে।
x //= y
যার পূর্ণরূপ হচ্ছেঃ
x = x // y
আমরা জেনেছি দুইটা ভাগ চিহ্ন (//) হচ্ছে ফ্লোর ডিভিশন। যা ভাগফল হিসেবে ভগ্নাংশের কাছাকাছি একটা পূর্ণ সংখ্যা রিটার্ণ করে।
x = 7 y = 2 x //= y print(x)
এখানে x এর মান প্রিন্ট করলে আমরা পাবো 3।
অন্যান্য এসাইনমেন্ট অপারেটর
উপারের এসাইনমেন্ট অপারেটর গুলো ছাড়াও পাইথনে নিচের অপারেটর গুলো সাপোর্ট করে। সংক্ষেপে সেগুলোর ব্যবহার দেওয়া হলো।
&= বিটওয়াজ AND এবং এসাইনঃ x &= y যার পূর্ণরুপ x = x & y
|= বিটওয়াইজ OR এবং এসাইনঃ x |= y যার পূর্ণরুপ x = x | y
^= বিটওয়াইজ xOR এবং এসাইনঃ x ^= y যার পূর্ণরুপ x = x ^ y
>>= বিটওয়াইজ রাইট শিফট এবং এসাইনঃ x >>= y যার পূর্ণরুপ x = x >> y
<<= বিটওয়াইজ লেফট শিফট এবং এসাইনঃ x <<= y যার পূর্ণরুপ x = x << y
লজিক্যাল অপারেটর (Logical Operator)
পাইথন প্রোগ্রামিং এ তিনটি লজিক্যাল অপারেটর রয়েছে। নিচের টেবিল দেখিঃ
| অপারেটর | অর্থ |
| and | লজিক্যাল অ্যান্ড (Logical and) |
| or | লজিক্যাল অর (Logical or) |
| not | লজিক্যাল নট (Logical not) |
and অপারেটর
দুই বা ততোধিক অপারেন্ডের মধ্যে সব গুলোর সত্যতা যাচাই করার জন্য and অপারেটর ব্যবহার করা হয়।
যেমনঃ
a = True b = True print(a and b)
যা আউটোপুট দিবে True।
এখানে a এবং b দুইটাই সত্য। তাই a and b এর মান ও সত্য। যদি এদের যে কোন একটা মিথ্যে হয়, তাহলে a and b এর মানও মিথ্যে হবে।
a = True b = False print(a and b)
আমরা চাইলে যে কোন এক্সপ্রেশনের সত্যতা এভাবে যাচাই করতে পারি। মনে করি x, y, z তিনটি ভ্যারিয়েবল। এখন (x < y) and (y < z) হচ্ছে একটি এক্সপ্রেশন। এখন এই পুরো এক্সপ্রেশন এর মান সত্য হবে যদি (x < y) এবং (y < z) সত্য হয়। (x < y) এবং (y < z) এর যে কোন একটি মিথ্যা হলে (x < y) and (y < z) এর মান মিথ্যে হবে। নিচের প্রোগ্রামটি দেখিঃ
যার আউটপুট পাবো True।
এখানে x এর মান 4, y এর মান 6। এর মানে (x < y) এক্সপ্রেশনটি সত্য। একই ভাবে (y < z) এক্সপ্রেশনটির মানও সত্য। কারণ y এর ভ্যালু z এর ভ্যালু থেকে ছোট।
এখন যদি আমরা z = 3 সেট করে প্রোগ্রামটি রান করি, তাহলে আউটপুট পাবো False।
x = 4 y = 6 z = 3 print((x < y) and (y < z))
কারণ হচ্ছে তখন (y < z) এক্সপ্রেশনটি মিথ্যে হয়ে যায়। আর তাই পুরো (x < y) and (y < z) এক্সপ্রেশনটিও মিথ্যে হয়ে যায়।
or অপারেটর
দুই বা এর অধিক এক্সপ্রেশনের সত্যতা যাচাই এর জন্য or অপারেটর ব্যবহার করা হয়। এখানে যে কোন একটি এক্সপ্রেশন সত্য হলেই পুরো স্টেটমেন্ট সত্য হবে। যেমনঃ
a = True b = False print(a and b)
যার আউটপুট পাবো True।
এখানে a সত্য, b ও মিথ্যে। or অপারেটরের ক্ষেত্রে যে কোন একটা সত্য হলেই পুরা এক্সপ্রেশন সত্য হয়। তাই a or b এর মান ও সত্য। যদি দুইটাই মিথ্যে হয়, তাহলে a or b এর মানও মিথ্যে হবে।
a = False b = False print(a and b)
মনে করি x, y, z তিনটি ভ্যারিয়েবল। এখন (x <y ) or (y < z) হচ্ছে একটি এক্সপ্রেশন। এখন এই পুরো এক্সপ্রেশনের মান সত্য হবে যদি (x < y) অথবা (y < z) এর যে কোন একটি সত্য হয়। (x < y) এবং (y < z) দুটি একসাথে মিথ্যা হলে (x < y) or (y < z) এর মান মিথ্যে হবে। নিচের প্রোগ্রামটি দেখিঃ
x = 4 y = 6 z = 3 print((x < y) or (y < z))
যার আউটপুট পাবো True।
এখানে (y < z) এক্সপ্রেশনটি কিন্তু সত্য নয়। কারণ y এর মান z এর মান থেকে ছোট নয়, বড়। এরপরও আমরা আউটপুট True পেয়েছি কারণ (x < y)
not অপারেটর
কোন একটা সত্য ভ্যালুকে মিথ্যে অথবা একটা মিথ্যে ভ্যালুকে সত্য করার জন্য not অপারেটর ব্যবহার করা হয়। যেমনঃ
a = True b = False print(not a) print(not b)
আউটপুট পাবো
False True
এই লজিক্যাল অপারেটর গুলো পরবর্তীতে লজিক্যাল কন্ডিশনে আমরা ব্যবহার করব।
রিলেশনাল বা কম্পারিজন অপারেটর
কোন কিছুর তুলনা করার জন্য কম্পারিজন (Comparison) অপারেটর ব্যবহার করা হয়। এটাকে রিলেশনাল (Relational) অপারেটরও বলা হয়।
পাইথন প্রোগ্রামিং এর কম্পারিজন অপারেটর গুলোঃ
- Nulled
- Tech
- Job
- Hacking Course
- Art
- Causes
- Crafts
- Dance
- Drinks
- Film
- Fitness
- Food
- Jogos
- Gardening
- Health
- Início
- Literature
- Music
- Networking
- Outro
- Party
- Religion
- Shopping
- Sports
- Theater
- Wellness