পাইথনে ইনপ্লেস অপারেটর
ইনপ্লেস অপারেশন হলো এমন একটি অপারেশন যা একটি লিনিয়ার অ্যালজেব্রা, ভেক্টর বা ম্যাট্রিক্সের কন্টেন্টকে কপি না করে সরাসরি পরিবর্তন করে। যেসব অপারেটর এই ধরনের অপারেশন করতে সাহায্য করে সেগুলোকে ইনপ্লেস অপারেটর বলা হয়।
একটি সহজ উদাহরণ দিয়ে বুঝি:
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) |