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

পাইথনে ইনপ্লেস এবং স্ট্যান্ডার্ড অপারেটর


পাইথনে ইনপ্লেস অপারেটর

ইনপ্লেস অপারেশন হলো এমন একটি অপারেশন যা একটি লিনিয়ার অ্যালজেব্রা, ভেক্টর বা ম্যাট্রিক্সের কন্টেন্টকে কপি না করে সরাসরি পরিবর্তন করে। যেসব অপারেটর এই ধরনের অপারেশন করতে সাহায্য করে সেগুলোকে ইনপ্লেস অপারেটর বলা হয়।

একটি সহজ উদাহরণ দিয়ে বুঝি:

a = 9
a += 2
print(a)

আউটপুট

11

উপরে += টাই ইনপুট অপারেটর। এখানে প্রথমে a-তে 2 যোগ হয় এবং তারপর a-এর ভ্যালু আপডেট হয় পূর্বের ভ্যালুর সাথে।

উপরের সিদ্ধান্ত অন্যান্য অপারেটরর জন্যও প্রযোজ্য। সাধারণ ইনপ্লেস অপারেটরগুলো হলো:

  • +=
  • -=
  • *=
  • /=
  • %=

উপরের সিদ্ধান্ত নাম্বারের বাইরও অন্যান্য টাইপের জন্যও প্রযোজ্য, উদাহরণস্বরূপ:

language = "Python"
language += "3"
print(language)

আউটপুট

Python3

উপরের x+=y উদাহরণ x = operator.iadd(x,y) সমতুল্য।

ইনপ্লেস অপারেশনের জন্য একাধিক অপারেটর ব্যবহৃত হয়।

iadd()

এই ফাংশন করেন্ট ভ্যালু অ্যাসাইন করে এবং যোগ করে। এই অপারেটর x+=y অপারেশন করে।

x = operator.iadd(9, 18)
print("Result after adding: ", end="")
print(x)

ফলাফল

Result after adding: 27

isub()

এই ফাংশন করেন্ট ভ্যালু অ্যাসাইন করে এবং বিয়োগ করে। isub() ফাংশন x-=y অপারেশন করে।

x = operator.isub(9, 18)
print("Result after subtraction: ", end="")
print(x)

ফলাফল

Result after subtraction: -9

imul()

এই ফাংশন করেন্ট ভ্যালু অ্যাসাইন করে এবং গুন করে। এই অপারেটর x*=y অপারেশন করে।

x = operator.imul(9, 18)
print("Result after multiplying: ", end="")
print(x)

ফলাফল

Result after multiplying: 162

itruediv()

এই ফাংশন করেন্ট ভ্যালু অ্যাসাইন করে এবং ভাগ করে। এই অপারেটর x/=y অপারেশন করে।

x = operator.itruediv(9, 18)
print("Result after dividing: ", end="")
print(x)

ফলাফল

Result after dividing: 0.5

imod()

এই ফাংশন করেন্ট ভ্যালু অ্যাসাইন করে এবং ভাগ করে। এই অপারেটর x%=y অপারেশন করে।

x = operator.imod(9, 18)
print("Result after moduls: ", end="")
print(x)

ফলাফল

Result after moduls: 9

iconcat()

এই ফাংশন দুটি স্ট্রিং কনক্যাটিনেট করে।

x = "Tutorials"
y = "Point"
str1 = operator.iconcat(x, y)
print("After concatenation: ", end="")
print(str1)

ফলাফল

After concatenation: TutorialsPoint

ipow()

এই ফাংশন x **=y সমতুল্য।

x = operator.ipow(2, 6)
print("Result after exponent: ", end="")
print(x)

ফলাফল

Result after exponent: 64

স্ট্যান্ডার্ড অপারেটর

অপারেটর হলো কনস্ট্রাক্ট যা অপারেন্ডের মান ম্যানিপুলেট করতে পারে।

উদাহরণস্বরূপ এক্সপ্রেশনে - 9+18 = 27, এখানে 9 এবং 18 অপারেন্ড এবং + হলো অপারেটর।

অপারেটর টাইপ

পাইথন ল্যাঙ্গুয়েজ নিচের টাইপের অপারেটর সাপোর্ট করে:

  • Arithmetic Operators: (উদাহরণ: +, -, *, /, %, **, //)

  • Comparison Operators: (উদাহরণ: "==", "!=", "<>", ">", "<", ">=", "<=")

  • Assignment Operators: (উদাহরণ: "=", "+=", "-=", "*=", "/=", "%=", "**=", "//=")

  • Logical Operators: (উদাহরণ: "Logical AND", "Logical OR", "Logical NOT")

  • Bitwise Operators: (উদাহরণ: "|", "&", "^", "~", "<<", ">>")
  • Membership Operators: (উদাহরণ: in, not in)

  • Identity Operators: (উদাহরণ: is, is not)

অপারেটর থেকে ফাংশন ম্যাপিং

নিচে একটি টেবিল দেওয়া হলো যা দেখাচ্ছে কীভাবে অ্যাবস্ট্রাক্ট অপারেশন পাইথন সিনট্যাক্সের অপারেটর সিম্বল এবং operator মডিউলের ফাংশন সাথে মেলে।

অপারেশন সিনট্যাক্স ফাংশন
Addition x + y add(x, y)
Concatenation Seq1 + seq2 Concat(seq1, seq2)
Containment Test Obj in seq Contains(seq, obj)
Division x / y Truediv(x, y)
Division x // y Floordiv(x, y)
Bitwise And x & y And_(x, y)
Bitwise Exclusive Or x ^ y Xor(x, y)
Bitwise Inversion ~x Invert(x)
Bitwise Or x|y or_(x,y)
Exponentiation x ** y pow(x, y)
Identity x is y is_(x, y)
Identity x is not y is_not(x, y)
Indexed Assignment obj[k] = v setitem(obj, k, v)
Indexed deletion del obj[k] delitem(obj, k)
Indexing Obj[k] Getitem(obj,k)
Left shift a << b Lshift(a,b)
Modulo a % b Mod(a, b)
Multiplication x*y mul(x*y)
Matrix multiplication x@b Matmul(x, y)
Negation(Arithmetic) -a Neg(a)
Negation(Logical) not a not_(a)
Positive +a pos(a)
Right shift a>>b Rshift(a,b)
Slice Assignment Seq[i:j] = values Setitem(seq, slice(i,j), values)
Slice deletion Del seq[i:j] Delitem(seq, slice(i,j))
Slicing Seq[i:j] Getitem(seq, slice(I, j))
String formatting S % obj Mod(s, obj)
Subtraction a-b Sub(a,b)
Truth Test obj truth(obj)
Ordering a<b lt(a,b)
Ordering a<=b le(a,b)
Equality a == b eq(a,b)
Difference a != b ne(a,b)
Ordering a >= b ge(a, b)
Ordering a > b gt(a, b)

  1. পাইথনে ইনপ্লেস অপারেটর: iadd(), isub(), iconcat()

  2. পাইথনে ডিভিশন অপারেটর

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

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