কম্পিউটার টিউটোরিয়াল

পাইথন স্ট্যান্ডার্ড অপারেটর ফাংশন হিসেবে (operator)

প্রোগ্রামিং-এ, অপারেটর সাধারণত একটি সিম্বল (কী) যা একটি নির্দিষ্ট অপারেশন সম্পাদনের জন্য প্রি-ডিফাইন করা থাকে যেমন যোগ, বিয়োগ, তুলনা ইত্যাদি। পাইথনে বিল্ট-ইন অপারেশনların একটি বড় সেট আছে যা বিভিন্ন ক্যাটাগরিতে বিভক্ত যেমন ארিথমেটিক, তুলনা, বিট-ওয়াইজ, মেম্বারশিপ ইত্যাদি।

পাইথন লাইব্রেরির operator মডিউল বিল্ট-ইন অপারেটরদের সাথে মিলে যাওয়া ফাংশনগুলোর samenstellung নিয়ে গঠিত। ফাংশনদের নাম সংশ্লিষ্ট অপারেটরের টাইপের সাথে অনুরূপ। উদাহরণস্বরূপ, operator মডিউলের add() ফাংশন + অপারেটরের সাথে মিলে যায়।

পাইথনের Object ক্লাসে ডান্ডার (নামের আগে এবং পরে ডবল আন্ডারস্কোর) মেথড থাকে যা অপারেটর সিম্বলের সাথে মিলে যায়। এই ডান্ডার মেথডগুলো ইউজার-ডিফাইনড ক্লাসে উপযুক্তভাবে ওভারলোড করা যেতে পারে অপারেটর ওভারলোডিং ইমপ্লিমেন্ট করতে। operator মডিউলেও সংশ্লিষ্ট ডান্ডার ফাংশন থাকে। উদাহরণস্বরূপ, add() এবং __add__() উভয়ই + সিম্বলের অপারেশন ইমপ্লিমেন্ট করে।

শুরু করি operator মডিউল থেকে ফাংশন ইম্পোর্ট করে:

>>> from operator import *

আরিথমেটিক অপারেটরের সাথে মিলে যাওয়া ফাংশন জানতে, দুটি ভেরিয়েবল ইনিশিয়ালাইজ করি:

>>> a = 10
>>> b = 20

add(), sub() এবং mul() যথাক্রমে +, - এবং * অপারেটরের সাথে মিলে যায়। ভাগের / সিম্বল truediv() ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়।

>>> add(a, b)
30
>>> a + b
30
>>> sub(a, b)
-10
>>> a - b
-10
>>> mul(a, b)
200
>>> a * b
200
>>> truediv(a, b)
0.5
>>> a / b
0.5

অন্যান্য আর্থমেটিক অপারেটর %, ** এবং // operator মডিউলের mod(), pow() এবং floordiv() ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়।

>>> a = 5
>>> b = 3
>>> a % b
2
>>> mod(a, b)
2
>>> a ** b
125
>>> pow(a, b)
125
>>> a // 2
2
>>> floordiv(a, b)
1

লজিক্যাল অপারেটর <, <=, >, >=, == এবং != যথাক্রমে lt(), le(), gt(), ge(), eq() এবং ne() ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়।

>>> a = 5
>>> b = 7
>>> a < b
True
>>> lt(a, b)
True
>>> a <= b
True
>>> le(a, b)
True
>>> a > b
False
>>> gt(a, b)
False
>>> a >= b
False
>>> ge(a, b)
False
>>> a == b
False
>>> eq(a, b)
False
>>> a != b
True
>>> ne(a, b)
True

সিকোয়েন্সের সাথে কাজ करने वाले ফাংশন

পাইথনের বিল্ট-ইন অপারেটর in, + (কনক্যাটেনেশন), এবং del যথাক্রমে contains(), concat(), delitem() ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়। ইন্ডেক্সড অ্যাসাইনমেন্ট অপারেটর seq[x] = y-এর জন্য setitem() ফাংশন ব্যবহৃত হয়। seq[x]-এর মান পাওয়ার জন্য getitem() ফাংশন ব্যবহৃত হয়।

>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> a + b  # সিকোয়েন্স কনক্যাটেনেশন
[1, 2, 3, 'a', 'b', 'c']
>>> concat(a, b)
[1, 2, 3, 'a', 'b', 'c']
>>> contains(a, '2')  # in অপারেটর ইমপ্লিমেন্ট করে
False
>>> contains(a, 2)
True
>>> 2 in a
True
>>> b[1] = 'x'  # ইন্ডেক্স অ্যাসাইনমেন্ট setitem() দ্বারা ইমপ্লিমেন্ট
>>> b
['a', 'x', 'c']
>>> setitem(b, 1, 'b')
>>> b
['a', 'b', 'c']
>>> a[1]  # ইন্ডেক্সে মান ফেচ করা - getitem() দ্বারা ইমপ্লিমেন্ট
2
>>> getitem(a, 1)
2
>>> del b[2]  # ইন্ডেক্সে এলিমেন্ট ডিলিট। সংশ্লিষ্ট ফাংশন delitem()
>>> b
['a', 'b']
>>> delitem(a, 2)
>>> a
[1, 2]

যে অপারেটরগুলো একটি স্টেপে অ্যাসাইনমেন্ট এবং কম্পিউটেশন উভয়ই সম্পাদন করে, তাদের ইন-প্লেস অপারেটর বলা হয়। পাইথনের ইন-প্লেস অপারেটরগুলো operator মডিউলে সংশ্লিষ্ট ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়। += অপারেটর যা অ্যাড এবং অ্যাসাইন অপারেশন সম্পাদন করে তার সংশ্লিষ্ট iadd() ফাংশন আছে। একইভাবে প্রতিটি অপারেটর ফাংশনের আগে 'i' প্রিফিক্স দিয়ে ইন-প্লেস সমতুল্য তৈরি করা হয়।

ইন-প্লেস অ্যাডিশন

>>> a = 10
>>> b = 20
>>> a = iadd(a, b)  # a += b-এর সমতুল্য
>>> a
30

ইন-প্লেস সাবট্র্যাকশন

>>> a = 10
>>> b = 20
>>> a = isub(a, b)  # a -= b-এর সমতুল্য
>>> a
-10

ইন-প্লেস মাল্টিপ্লিকেশন

>>> a = 10
>>> b = 20
>>> a = imul(a, b)  # a *= b-এর সমতুল্য
>>> a
200

ইন-প্লেস ডিভিশন

>>> a = 10
>>> b = 4
>>> a = itruediv(a, b)
>>> a
2.5

operator মডিউল স্ট্যান্ডার্ড বিট-ওয়াইজ অপারেটর ইমপ্লিমেন্ট করার ফাংশনও ধারণ করে:

>>> and_(10, 2)  # 10 & 2-এর সমতুল্য
2
>>> or_(10, 2)   # 10 | 2-এর সমতুল্য
10
>>> xor(10, 2)   # 10 ^ 2-এর সমতুল্য
8
>>> lshift(10, 2)  # 10 << 2-এর সমতুল্য
40
>>> rshift(10, 2)  # 10 >> 2-এর সমতুল্য
2
  1. পাইথনে টাইম ফাংশন (Time Functions)

  2. পাইথনে চেইনিং কমপারিজন অপারেটর (Chaining Comparison Operators)

  3. পাইথন operator মডিউল: ফাংশনাল আকারে অপারেটর ব্যবহার

  4. পাইথনে দশমিক ফাংশনসমূহ