পাইথনে অপারেটরস এবং এক্সপ্রেশন হলো প্রোগ্রামের মূল উপাদান। অপারেটর দিয়ে ভেরিয়েবল বা মানের ওপর গাণিতিক, লজিক্যাল বা অন্যান্য ধরণের অপারেশন করা হয়, আর এক্সপ্রেশনগুলো হলো বিভিন্ন অপারেটর ও অপারেন্ডের সমন্বয়ে গঠিত।
অপারেটরস (Operators):
১. গাণিতিক অপারেটর (Arithmetic Operators): পাইথনে গাণিতিক কাজ করার জন্য বিভিন্ন অপারেটর রয়েছে।
+: যোগ-: বিয়োগ*: গুণ/: ভাগ (ভাসা ভ্যালু রিটার্ন করে)//: ভাগফল (পূর্ণসংখ্যা রিটার্ন করে)%: ভাগশেষ (মডুলাস)**: ঘাত (এক্সপোনেনশিয়াল)
উদাহরণ:
x = 10
y = 3
print(x + y) # 13
print(x - y) # 7
print(x * y) # 30
print(x / y) # 3.3333333333333335
print(x // y) # 3
print(x % y) # 1
print(x ** y) # 1000
২. তুলনামূলক অপারেটর (Comparison Operators): তুলনামূলক অপারেটর ব্যবহার করে ভেরিয়েবল বা মানগুলোর মধ্যে তুলনা করা হয়, যা বুলিয়ান রেজাল্ট (True বা False) রিটার্ন করে।
==: সমান কিনা যাচাই করে!=: সমান নয় কিনা যাচাই করে<: ছোট কিনা>: বড় কিনা<=: ছোট বা সমান কিনা>=: বড় বা সমান কিনা
উদাহরণ:
a = 5
b = 10
print(a == b) # False
print(a != b) # True
print(a < b) # True
print(a > b) # False
print(a <= b) # True
print(a >= b) # False
৩. লজিক্যাল অপারেটর (Logical Operators): লজিক্যাল অপারেটর ব্যবহার করে একাধিক শর্তের ভিত্তিতে একটি লজিক্যাল আউটপুট দেওয়া হয়।
and: সব শর্ত True হলে True রিটার্ন করেor: যেকোনো একটি শর্ত True হলে True রিটার্ন করেnot: শর্তের বিপরীত মান প্রদান করে
উদাহরণ:
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
৪. অ্যাসাইনমেন্ট অপারেটর (Assignment Operators): ভেরিয়েবলে মান সংরক্ষণ বা নির্দিষ্ট অপারেশন করার জন্য অ্যাসাইনমেন্ট অপারেটর ব্যবহার করা হয়।
=: মান অ্যাসাইন করা+=: বর্তমান মানের সাথে যোগ এবং অ্যাসাইন করা-=: বর্তমান মানের সাথে বিয়োগ এবং অ্যাসাইন করা*=: গুণ এবং অ্যাসাইন করা/=: ভাগ এবং অ্যাসাইন করা//=: ভাগফল এবং অ্যাসাইন করা%=: ভাগশেষ এবং অ্যাসাইন করা**=: ঘাত এবং অ্যাসাইন করা
উদাহরণ:
x = 5
x += 3 # x = x + 3
print(x) # 8
৫. বিটওয়াইজ অপারেটর (Bitwise Operators): বিট স্তরে অপারেশন করার জন্য বিটওয়াইজ অপারেটর ব্যবহার করা হয়। যেমন:
&: বিটওয়াইজ AND|: বিটওয়াইজ OR^: বিটওয়াইজ XOR~: বিটওয়াইজ NOT<<: বিট শিফট বামে>>: বিট শিফট ডানে
এক্সপ্রেশন (Expressions):
এক্সপ্রেশন হলো অপারেটর এবং অপারেন্ডের সংমিশ্রণ, যা একটি নির্দিষ্ট ফলাফল রিটার্ন করে। এক্সপ্রেশনগুলো পাইথনে অনেক ধরণের হতে পারে, যেমন গাণিতিক এক্সপ্রেশন, লজিক্যাল এক্সপ্রেশন ইত্যাদি।
উদাহরণ:
# গাণিতিক এক্সপ্রেশন
x = 10
y = 5
result = x + y * 2 # এখানে x + (y * 2) হিসেবে এক্সপ্রেশনটি মূল্যায়ন করা হবে
print(result) # 20
# লজিক্যাল এক্সপ্রেশন
a = True
b = False
logical_result = a or b and not a
print(logical_result) # False
সংক্ষেপে:
- অপারেটর হলো সেই চিহ্ন বা প্রতীক যা ভেরিয়েবল বা মানের মধ্যে বিভিন্ন ধরনের কাজ সম্পন্ন করে।
- এক্সপ্রেশন হলো অপারেটর ও অপারেন্ডের সমন্বয়ে গঠিত, যা একটি নির্দিষ্ট মান বা ফলাফল প্রদান করে।
পাইথনে গাণিতিক অপারেটর বা আরিথমেটিক অপারেটর ব্যবহার করে বিভিন্ন গাণিতিক কাজ করা যায়, যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি। নিচে পাইথনের প্রধান গাণিতিক অপারেটরগুলো এবং তাদের উদাহরণ দেওয়া হলো।
গাণিতিক অপারেটরগুলোর তালিকা
যোগ (+) : দুটি মানের যোগফল প্রদান করে।
a = 5
b = 3
result = a + b # 8
বিয়োগ (-) : প্রথম মান থেকে দ্বিতীয় মানটি বিয়োগ করে।
a = 5
b = 3
result = a - b # 2
গুণ (*) : দুটি মানের গুণফল প্রদান করে।
a = 5
b = 3
result = a * b # 15
ভাগ (/) : প্রথম মানকে দ্বিতীয় মান দিয়ে ভাগ করে ভগ্নাংশ প্রদান করে।
a = 5
b = 2
result = a / b # 2.5
মডুলাস (%) : প্রথম মানকে দ্বিতীয় মান দিয়ে ভাগ করে ভাগশেষ প্রদান করে।
a = 5
b = 2
result = a % b # 1
কোটিয়েন্ট (//) : প্রথম মানকে দ্বিতীয় মান দিয়ে ভাগ করে পূর্ণসংখ্যা আকারে ফলাফল প্রদান করে (শুধু কোটিয়েন্ট অংশ নেয়)।
a = 5
b = 2
result = a // b # 2
উদ্ধারণ ()** : প্রথম মানকে দ্বিতীয় মান দিয়ে উধ্বরণের জন্য ব্যবহার করা হয় (power বা exponentiation)।
a = 5
b = 3
result = a ** b # 125 (5^3)
উদাহরণ:
x = 10
y = 3
# যোগফল
print(x + y) # 13
# বিয়োগ
print(x - y) # 7
# গুণফল
print(x * y) # 30
# ভাগফল
print(x / y) # 3.3333333333333335
# মডুলাস
print(x % y) # 1
# কোটিয়েন্ট
print(x // y) # 3
# উধ্বারণ
print(x ** y) # 1000
সারসংক্ষেপ
এই গাণিতিক অপারেটরগুলো পাইথনে বিভিন্ন ধরনের গাণিতিক কাজ করতে ব্যবহৃত হয় এবং এগুলোর মাধ্যমে আমরা বিভিন্ন লজিকাল সমস্যার সমাধান করতে পারি।
রিলেশনাল অপারেটরস (Relational Operators) পাইথনে ভেরিয়েবল বা মানগুলোর মধ্যে সম্পর্ক যাচাই করার জন্য ব্যবহৃত হয়। এরা তুলনামূলক অপারেটর নামেও পরিচিত। রিলেশনাল অপারেটরের মাধ্যমে কোনো মান বড়, ছোট, সমান বা অসমান কিনা তা যাচাই করা যায় এবং এরা বুলিয়ান আউটপুট (True বা False) প্রদান করে।
পাইথনের রিলেশনাল অপারেটরস:
== (সমান): দুটি মান সমান কিনা যাচাই করে।
a = 5
b = 5
print(a == b) # True
!= (অসমান): দুটি মান সমান নয় কিনা যাচাই করে।
a = 5
b = 3
print(a != b) # True
< (ছোট): প্রথম মান দ্বিতীয় মানের চেয়ে ছোট কিনা যাচাই করে।
a = 3
b = 5
print(a < b) # True
> (বড়): প্রথম মান দ্বিতীয় মানের চেয়ে বড় কিনা যাচাই করে।
a = 7
b = 5
print(a > b) # True
<= (ছোট বা সমান): প্রথম মান দ্বিতীয় মানের চেয়ে ছোট বা সমান কিনা যাচাই করে।
a = 5
b = 5
print(a <= b) # True
>= (বড় বা সমান): প্রথম মান দ্বিতীয় মানের চেয়ে বড় বা সমান কিনা যাচাই করে।
a = 5
b = 4
print(a >= b) # True
উদাহরণ:
x = 10
y = 20
print(x == y) # False, কারণ x এবং y সমান নয়
print(x != y) # True, কারণ x এবং y সমান নয়
print(x < y) # True, কারণ x ছোট y এর চেয়ে
print(x > y) # False, কারণ x বড় নয় y এর চেয়ে
print(x <= y) # True, কারণ x ছোট বা সমান y এর
print(x >= y) # False, কারণ x বড় নয় y এর
সংক্ষেপে:
- রিলেশনাল অপারেটরস মানগুলোর মধ্যে তুলনা করার জন্য ব্যবহৃত হয়।
- এগুলো True বা False রিটার্ন করে।
- এদের সাহায্যে শর্ত (conditions) যাচাই করা যায়, যা
ifস্টেটমেন্ট এবং লজিক্যাল অপারেশনে খুবই গুরুত্বপূর্ণ।
পাইথনে লজিকাল অপারেটর ব্যবহার করে বিভিন্ন শর্ত একত্রে যাচাই করা যায়। লজিকাল অপারেটরগুলো সাধারণত শর্তভিত্তিক স্টেটমেন্ট যেমন if এবং while-এ ব্যবহৃত হয়। পাইথনে তিনটি লজিকাল অপারেটর রয়েছে: and, or, এবং not। নিচে প্রতিটি লজিকাল অপারেটর এবং তাদের উদাহরণ দেওয়া হলো।
১. and অপারেটর
and অপারেটর ব্যবহার করে দুটি শর্তকে একসাথে যাচাই করা হয়। যদি উভয় শর্তই সত্য হয়, তাহলে এটি True রিটার্ন করে; অন্যথায় False।
উদাহরণ:
x = 5
y = 10
z = 15
if x < y and y < z:
print("Both conditions are true.")
# আউটপুট: Both conditions are true.
২. or অপারেটর
or অপারেটর ব্যবহার করে দুটি শর্তের যেকোনো একটি সত্য হলেই True রিটার্ন করে। উভয় শর্তই মিথ্যা হলে এটি False রিটার্ন করে।
উদাহরণ:
x = 5
y = 10
z = 15
if x > y or y < z:
print("At least one condition is true.")
# আউটপুট: At least one condition is true.
৩. not অপারেটর
not অপারেটর একটি শর্তের বিপরীত মান প্রদান করে। যদি শর্ত True হয়, তাহলে not সেটিকে False করে এবং যদি শর্ত False হয়, তাহলে সেটিকে True করে।
উদাহরণ:
x = 5
y = 10
if not x > y:
print("Condition is false, but `not` makes it true.")
# আউটপুট: Condition is false, but `not` makes it true.
উদাহরণ সমন্বিত কোড
age = 20
is_student = True
# and অপারেটর
if age > 18 and is_student:
print("The person is an adult student.")
# আউটপুট: The person is an adult student.
# or অপারেটর
if age > 18 or is_student:
print("The person is either an adult or a student.")
# আউটপুট: The person is either an adult or a student.
# not অপারেটর
if not is_student:
print("The person is not a student.")
else:
print("The person is a student.")
# আউটপুট: The person is a student.
সারসংক্ষেপ
লজিকাল অপারেটর and, or, এবং not পাইথনে বিভিন্ন শর্ত একত্রে যাচাই করতে এবং আরও জটিল লজিক তৈরি করতে সহায়ক।
অ্যাসাইনমেন্ট অপারেটর (Assignment Operators) পাইথনে ভেরিয়েবলে মান অ্যাসাইন বা নির্দিষ্ট গাণিতিক অপারেশন সম্পাদন করার জন্য ব্যবহৃত হয়। পাইথনের অ্যাসাইনমেন্ট অপারেটরগুলো খুবই দরকারী, কারণ এগুলো কোড সংক্ষিপ্ত এবং সহজ করে।
অ্যাসাইনমেন্ট অপারেটরগুলোর তালিকা:
= (সাধারণ অ্যাসাইনমেন্ট): ডান পাশের মান বাম পাশে ভেরিয়েবলে সংরক্ষণ করে।
x = 10
+= (যোগ এবং অ্যাসাইন): বর্তমান মানের সাথে নির্দিষ্ট মান যোগ করে এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করে।
x = 5
x += 3 # x = x + 3
print(x) # 8
-= (বিয়োগ এবং অ্যাসাইন): বর্তমান মান থেকে নির্দিষ্ট মান বিয়োগ করে এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করে।
x = 5
x -= 2 # x = x - 2
print(x) # 3
*= (গুণ এবং অ্যাসাইন): বর্তমান মানের সাথে নির্দিষ্ট মান গুণ করে এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করে।
x = 4
x *= 2 # x = x * 2
print(x) # 8
/= (ভাগ এবং অ্যাসাইন): বর্তমান মানকে নির্দিষ্ট মান দিয়ে ভাগ করে এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করে (ভাসা মান রিটার্ন করে)।
x = 10
x /= 2 # x = x / 2
print(x) # 5.0
//= (ভাগফল এবং অ্যাসাইন): বর্তমান মানকে নির্দিষ্ট মান দিয়ে ভাগ করে পূর্ণসংখ্যা ফলাফল ভেরিয়েবলে সংরক্ষণ করে।
x = 10
x //= 3 # x = x // 3
print(x) # 3
%= (মডুলাস এবং অ্যাসাইন): বর্তমান মানকে নির্দিষ্ট মান দিয়ে ভাগের পর ভাগশেষ ভেরিয়েবলে সংরক্ষণ করে।
x = 10
x %= 3 # x = x % 3
print(x) # 1
**= (ঘাত এবং অ্যাসাইন): বর্তমান মানকে নির্দিষ্ট ঘাতে উন্নীত করে এবং ফলাফল ভেরিয়েবলে সংরক্ষণ করে।
x = 2
x **= 3 # x = x ** 3
print(x) # 8
উদাহরণ প্রোগ্রাম:
x = 5
x += 2 # x = x + 2, ফলে x এর মান হবে 7
print(x) # 7
x *= 3 # x = x * 3, ফলে x এর মান হবে 21
print(x) # 21
x //= 4 # x = x // 4, ফলে x এর মান হবে 5
print(x) # 5
সংক্ষেপে:
- অ্যাসাইনমেন্ট অপারেটরস ভেরিয়েবলের মান পরিবর্তন বা নির্দিষ্ট অপারেশন সম্পাদনে ব্যবহৃত হয়।
- এটি ভেরিয়েবলে মান সংরক্ষণ সহজ করে এবং কোড সংক্ষিপ্ত করে।
পাইথনে বিটওয়াইজ অপারেটর ব্যবহার করে বাইনারি বা বিট স্তরের অপারেশন করা হয়। বিটওয়াইজ অপারেটর সাধারণত দুটি পূর্ণসংখ্যার উপর কাজ করে এবং তাদের বাইনারি প্রতিনিধিত্বের উপর ভিত্তি করে বিট স্তরে বিভিন্ন ধরণের গাণিতিক কাজ সম্পন্ন করে। নিচে পাইথনের প্রধান বিটওয়াইজ অপারেটরগুলো এবং তাদের উদাহরণ দেওয়া হলো।
বিটওয়াইজ অপারেটরগুলোর তালিকা
AND (&) : উভয় বিটই ১ হলে আউটপুট ১ হয়।
a = 5 # 0101
b = 3 # 0011
result = a & b # 0001 (1)
OR (|) : যেকোনো একটি বিট ১ হলে আউটপুট ১ হয়।
a = 5 # 0101
b = 3 # 0011
result = a | b # 0111 (7)
XOR (^) : দুটি বিট ভিন্ন হলে আউটপুট ১ হয়, একই হলে ০।
a = 5 # 0101
b = 3 # 0011
result = a ^ b # 0110 (6)
NOT (~) : প্রতিটি বিটকে উল্টে দেয়, ১ কে ০ এবং ০ কে ১ করে।
a = 5 # 0101
result = ~a # 1010 (-6, কারণ এটি টু’স কমপ্লিমেন্টে কাজ করে)
বাম শিফট (<<) : নির্দিষ্ট সংখ্যক বিট বাম দিকে সরিয়ে দেয়, যা মানের দ্বিগুণ করে।
a = 5 # 0101
result = a << 1 # 1010 (10)
ডান শিফট (>>) : নির্দিষ্ট সংখ্যক বিট ডান দিকে সরিয়ে দেয়, যা মানের অর্ধেক করে।
a = 5 # 0101
result = a >> 1 # 0010 (2)
উদাহরণ সমন্বিত কোড
a = 5 # 0101 in binary
b = 3 # 0011 in binary
# AND
print("AND:", a & b) # Output: 1 (0001 in binary)
# OR
print("OR:", a | b) # Output: 7 (0111 in binary)
# XOR
print("XOR:", a ^ b) # Output: 6 (0110 in binary)
# NOT
print("NOT:", ~a) # Output: -6 (in two's complement, 1010 in binary)
# Left Shift
print("Left Shift:", a << 1) # Output: 10 (1010 in binary)
# Right Shift
print("Right Shift:", a >> 1) # Output: 2 (0010 in binary)
সারসংক্ষেপ
বিটওয়াইজ অপারেটর বাইনারি স্তরে কাজ করে এবং দ্রুত এবং কার্যকর উপায়ে সংখ্যা গণনা করতে সহায়ক। বিট স্তরে অপারেশন করা প্রোগ্রামের কর্মক্ষমতা উন্নত করে এবং কিছু নির্দিষ্ট সমস্যার সমাধানে সহজতর সমাধান প্রদান করে।
Read more