Table of Contents

    Class - XII: SEMESTER – III: Unit – 1: Python Programming: Section 3: Operators

    Python-এর অপারেটর (Operators)

    Python প্রোগ্রামিং ভাষায় অপারেটর হল কিছু বিশেষ চিহ্ন বা শব্দ, যা দিয়ে এক বা একাধিক মানের (অপারেন্ড) উপর কোনো গাণিতিক, তুলনামূলক বা যৌক্তিক ক্রিয়া সম্পাদন করা হয়। উদাহরণ হিসেবে, 4 + 5 = 9 এক্সপ্রেশনটিতে ৪ এবং ৫ হচ্ছে অপারেন্ড, আর + হল অপারেটর

    Python-এ বিভিন্ন ধরণের অপারেটর রয়েছে, যেমন:

    অপারেটরের ধরন ব্যবহারক্ষেত্র / কাজ উদাহরণ অপারেটর
    গাণিতিক (Arithmetic) গণনা ও হিসাব করা + - * / // % **
    তুলনামূলক (Comparison) দুটি মানের তুলনা করা == != > < >= <=
    যৌক্তিক (Logical) শর্তাবলী যুক্ত করা বা বাদ দেওয়া and, or, not
    অ্যাসাইনমেন্ট (Assignment) ভ্যারিয়েবলে মান বসানো =, +=, -= ...
    আইডেন্টিটি (Identity) একই অবজেক্ট কিনা পরীক্ষা is, is not
    মেম্বারশিপ (Membership) সিকোয়েন্সের সদস্য কিনা পরীক্ষা in, not in

    গাণিতিক অপারেটর (Arithmetic Operators)

    গাণিতিক অপারেটর বিভিন্ন গাণিতিক কাজ সম্পাদনের জন্য ব্যবহৃত হয়। এতে অন্তর্ভুক্ত রয়েছে যোগ, বিয়োগ, গুণ, ভাগ, পূর্ণ ভাগ (floor division), ভাগশেষ (modulus), এবং ঘাত (exponentiation) অপারেটর। নিচের টেবিলে এগুলোর তালিকা ও উদাহরণ দেখানো হলো:

    অপারেটর কর্ম উদাহরণ
    + (যোগ) দুইটি মান যোগ করে 5 + 3 = 8
    - (বিয়োগ) বাম দিকের মান থেকে ডান দিকের মান বিয়োগ করে 5 - 3 = 2
    * (গুণ) দুইটি মান গুণ করে 5 * 3 = 15
    / (ভাগ) বাম মানকে ডান মান দিয়ে ভাগ করে (ভগ্নাংশসহ ফলাফল) 5 / 2 = 2.5
    // (পূর্ণ ভাগ) পূর্ণসংখ্যার ভাগফল (ভাগফল থেকে দশমিক বাদ) 5 // 2 = 2
    % (ভাগশেষ) ভাগশেষ (remainder) প্রদান করে 5 % 2 = 1
    ** (ঘাত) ঘাত নির্দেশ করে (power নির্ণয়) 2 ** 3 = 8
    # উদাহরণ: গাণিতিক অপারেটর
    a = 9
    b = 4
    print("a + b =", a + b)   # আউটপুট: 13
    print("a - b =", a - b)   # আউটপুট: 5
    print("a * b =", a * b)   # আউটপুট: 36
    print("a / b =", a / b)   # আউটপুট: 2.25
    print("a // b =", a // b) # আউটপুট: 2 (পূর্ণসংখ্যা ভাগফল)
    print("a % b =", a % b)   # আউটপুট: 1 (ভাগশেষ)
    print("a ** b =", a ** b) # আউটপুট: 6561 (ঘাত: ৯ এর ৪র্থ ঘাত)
    মনে রাখো: Python-এ / অপারেটর সবসময় একটি float (দশমিকসহ সংখ্যা) রিটার্ন করে। যদি আপনি পূর্ণসংখ্যা ফলাফল পেতে চান, তাহলে // (ফ্লোর ডিভিশন) অপারেটর ব্যবহার করুন।

    তুলনামূলক অপারেটর (Comparison/Relational Operators)

    তুলনামূলক অপারেটর দুটি মানের মধ্যে সম্পর্ক (বড়, ছোট, সমান ইত্যাদি) নির্ণয় করতে ব্যবহার হয়। এই অপারেটরের ফলস্বরূপ একটি Boolean মান (সত্য বা মিথ্যা) পাওয়া যায়। প্রধান তুলনামূলক অপারেটরগুলো হল:

    অপারেটর অর্থ উদাহরণ (যদি a = 5, b = 3)
    == সমান কিনা a == b হল False (৫ সমান নয় ৩)
    != সমান নয় কিনা a != b হল True (৫ সমান নয় ৩)
    > বড় কিনা a > b হল True (৫ > ৩)
    < ছোট কিনা a < b হল False (৫ < ৩ নয়)
    >= বড় বা সমান কিনা a >= 5 হল True (৫ >= ৫)
    <= ছোট বা সমান কিনা a <= b হল False (৫ <= ৩ নয়)
    # উদাহরণ: তুলনামূলক অপারেটর
    x = 10
    y = 7
    print(x == y)   # আউটপুট: False (10 সমান নয় 7)
    print(x != y)   # আউটপুট: True  (10 সমান নয় 7)
    print(x > y)    # আউটপুট: True  (10 > 7)
    print(x < 5)    # আউটপুট: False (10 < 5 নয়)
    print(x >= 10)  # আউটপুট: True  (10 >= 10)
    print(x <= 7)   # আউটপুট: False (10 <= 7 নয়)
    সাবধান: Python-এ = (একটি সমান চিহ্ন) হল অ্যাসাইনমেন্ট অপারেটর, যা কোনো ভ্যারিয়েবলে মান বসাতে ব্যবহৃত হয়। অন্যদিকে, == (দুটি সমান চিহ্ন) হল তুলনামূলক অপারেটর, যা দুইটি মান সমান কিনা পরীক্ষা করে। নতুন শিক্ষার্থীরা অনেক সময় = এবং == এর পার্থক্য ভুল করে থাকে!

    যৌক্তিক অপারেটর (Logical Operators)

    যৌক্তিক অপারেটর বুলিয়ান (Boolean) শর্ত বা মানগুলোর উপর যৌক্তিক (লজিক্যাল) ক্রিয়া সম্পাদন করে। Python-এ তিনটি লজিক্যাল অপারেটর আছে: and, or, এবং not। এদের মাধ্যমে আমরা একাধিক শর্ত একসাথে পরীক্ষা করতে পারি বা শর্তের যৌক্তিক ফলাফল উল্টে দিতে পারি।

    • and: দুটি শর্তই True হলে পুরো এক্সপ্রেশন True হয় (অন্যথায় False).
    • or: কমপক্ষে একটি শর্ত True হলে পুরো এক্সপ্রেশনটি True হয় (দুইটিই False হলে তবেই False).
    • not: একটি বুলিয়ন মানকে উল্টে দেয়; True কে False এবং False কে True করে।
    # উদাহরণ: যৌক্তিক অপারেটর
    has_job = True
    has_degree = False
    age = 19
    
    print(has_job and age >= 18)   # True এবং বয়স ১৮-এর বেশি (True and True) ফলাফল True
    print(has_job and has_degree)  # চাকরি আছে কিন্তু ডিগ্রি নেই (True and False) ফলাফল False
    print(has_job or has_degree)   # চাকরি আছে অথবা ডিগ্রি আছে (True or False) ফলাফল True
    print(age < 18 or has_degree)  # বয়স < 18 অথবা ডিগ্রি আছে (False or False) ফলাফল False
    print(not has_job)             # not True ফলাফল False
    print(not has_degree)          # not False ফলাফল True

    অ্যাসাইনমেন্ট অপারেটর (Assignment Operators)

    অ্যাসাইনমেন্ট অপারেটর দিয়ে ভ্যারিয়েবলে মান নির্দিষ্ট (assign) করা হয়। সাধারণ অ্যাসাইনমেন্ট অপারেটর = চিহ্ন দ্বারা প্রকাশ করা হয়। বাম পাশে ভ্যারিয়েবলের নাম এবং ডান পাশে তার মান দিয়ে এই অপারেটর ব্যবহার করা হয়। উদাহরণ:

    # উদাহরণ: অ্যাসাইনমেন্ট অপারেটর
    x = 5      # ভ্যারিয়েবল x এ ৫ রাখা হলো
    name = "Rahim"  # name ভ্যারিয়েবলে "Rahim" রাখা হলো
    y = x + 10 # x এর মান ৫ বলে y তে ১৫ রাখা হলো
    print(x, y, name)  # আউটপুট: 5 15 Rahim

    Python আরো কিছু যৌগিক অ্যাসাইনমেন্ট অপারেটর (augmented assignment) সমর্থন করে, যা অ্যাসাইনমেন্টের সাথে অন্য অপারেটরের কাজ একসাথে করে।

    যৌগিক অ্যাসাইনমেন্ট অপারেটর (Augmented Assignment)

    এই অপারেটরগুলোর ক্ষেত্রে সাধারণত = এর আগে একটি গাণিতিক অপারেটর থাকে। উদাহরণস্বরূপ, += অপারেটরটি একটি ভ্যারিয়েবলের সাথে কোনো মান যোগ করে তারপর ফলাফল সেই ভ্যারিয়েবলে সংরক্ষণ করে। নিচের টেবিলে প্রধান যৌগিক অ্যাসাইনমেন্ট অপারেটরগুলোর কাজ দেখানো হলো:

    অপারেটর কর্ম উদাহরণ (c = 5, a = 3)
    += (যোগ ও অ্যাসাইন) ডান পাশের মানটি বাম পাশের ভ্যারিয়েবলের সাথে যোগ করে, ফলাফল বাম পাশেই রেখে c += a অর্থ c = c + a (ফল ৮)
    -= (বিয়োগ ও অ্যাসাইন) বাম পাশের ভ্যারিয়েবল থেকে ডান পাশের মানটি বিয়োগ করে, ফলাফল বামে রেখে c -= a অর্থ c = c - a (ফল ২)
    *= (গুণ ও অ্যাসাইন) বাম পাশের মানকে ডান পাশের মান দ্বারা গুণ করে, ফলাফল বামে রেখে c *= a অর্থ c = c * a (ফল ১৫)
    /= (ভাগ ও অ্যাসাইন) বাম পাশের মানকে ডান পাশের মান দ্বারা ভাগ করে, ফলাফল বামে রেখে c /= a অর্থ c = c / a (ফল ১.৬৬৬...)
    %= (ভাগশেষ ও অ্যাসাইন) বাম পাশের মানকে ডান পাশে ভাগ করে ভাগশেষ বামে রেখে c %= a অর্থ c = c % a (ফল ২)
    **= (ঘাত ও অ্যাসাইন) বাম পাশের মানকে ডান পাশের মান দ্বারা ঘাত করে, ফলাফল বামে রেখে c **= a অর্থ c = c ** a (ফল ১২৫)
    //= (পূর্ণ ভাগ ও অ্যাসাইন) বাম পাশের মানকে ডান পাশের মান দ্বারা পূর্ণ ভাগ করে, ফলাফল বামে রেখে c //= a অর্থ c = c // a (ফল ১)

    আইডেন্টিটি অপারেটর (Identity Operators)

    আইডেন্টিটি অপারেটর দুইটি ভ্যারিয়েবল একই অবজেক্ট (অবজেক্ট বলতে মেমরি রেফারেন্স) নির্দেশ করছে কিনা তা পরীক্ষা করে। Python-এ দুটি আইডেন্টিটি অপারেটর রয়েছে:

    • is: যদি দুটো ভ্যারিয়েবল একই অবজেক্ট নির্দেশ করে, তাহলে ফলাফল True হবে (অন্যথায় False)।
    • is not: যদি দুটো ভ্যারিয়েবল একই অবজেক্ট নির্দেশ না করে, তাহলে ফলাফল True হবে (অন্যথায় False)।

    আইডেন্টিটি অপারেটর সাধারণত তখনই ব্যবহৃত হয় যখন আপনি পরীক্ষা করতে চান কোনো দুই ভ্যারিয়েবল প্রকৃতপক্ষে একই বস্তু নির্দেশ করছে কিনা। উদাহরণস্বরূপ: None মান পরীক্ষা করতে Python-এ is অপারেটর ব্যবহার করা একটি ভালো অভ্যাস।

    # উদাহরণ: আইডেন্টিটি অপারেটর
    a = [1, 2, 3]
    b = a
    c = [1, 2, 3]
    
    print(a is b)       # আউটপুট: True  (a এবং b একই লিস্ট অবজেক্ট)
    print(a is c)       # আউটপুট: False (a এবং c আলাদা অবজেক্ট)
    print(a is not c)   # আউটপুট: True  (a এবং c একই অবজেক্ট নয়)
    print(a == c)       # আউটপুট: True  (লিস্ট দুইটির উপাদান একই বলে == True)

    উপরের উদাহরণে, a এবং b একই লিস্টকেই নির্দেশ করায় a is b রিটার্ন করেছে True। কিন্তু c হলো একই মানের একটি ভিন্ন লিস্ট, তাই a is c রিটার্ন করেছে False। আবার a == c রিটার্ন করেছে True, কারণ a এবং c তে থাকা উপাদানগুলো সমান। সুতরাং, == অপারেটর মানের সমতা যাচাই করে, আর is অপারেটর অবজেক্টের সমতা (একই বস্তুকে সূচক করছে কিনা) যাচাই করে।

    মেম্বারশিপ অপারেটর (Membership Operators)

    মেম্বারশিপ অপারেটর কোনো নির্দিষ্ট উপাদান একটি সিকোয়েন্স বা সেটের সদস্য কিনা তা যাচাই করে। সাধারণত তালিকা (list), স্ট্রিং (string), টাপল (tuple) প্রভৃতি কাঠামোয় এদের ব্যবহার দেখা যায়। Python-এ দুটি মেম্বারশিপ অপারেটর রয়েছে:

    • in: কোনো উপাদান যদি নির্দিষ্ট সিকোয়েন্স বা সেটে উপস্থিত থাকে, তবে ফলাফল True হবে।
    • not in: কোনো উপাদান যদি নির্দিষ্ট সিকোয়েন্স বা সেটে উপস্থিত না থাকে, তবে ফলাফল True হবে।
    # উদাহরণ: মেম্বারশিপ অপারেটর
    fruits = ["আম", "কলা", "আপেল"]
    print("আম" in fruits)      # আউটপুট: True  ("আম" তালিকায় আছে)
    print("আঙ্গুর" in fruits)  # আউটপুট: False ("আঙ্গুর" তালিকায় নেই)
    text = "Hello World"
    print("Hello" in text)     # আউটপুট: True  ("Hello" পাঠ্যে আছে)
    print("hey" not in text)   # আউটপুট: True  ("hey" পাঠ্যে নেই)

    উপসংহার

    এই আর্টিকেলে আমরা Python প্রোগ্রামিং ভাষার বিভিন্ন অপারেটর নিয়ে আলোচনা করলাম। **অপারেটর** হচ্ছে প্রোগ্রামিং ভাষার এমন উপাদান যার মাধ্যমে গণনা, তুলনা, বা যৌক্তিক সিদ্ধান্ত গ্রহণ করা যায়। সঠিক অপারেটর ব্যবহারের জ্ঞান প্রোগ্রামিং শেখার ক্ষেত্রে খুবই গুরুত্বপূর্ণ। উচ্চমাধ্যমিক শিক্ষার্থীদের জন্য এগুলো বুঝে রাখা ভবিষ্যতের প্রোগ্রামিংয়ের জন্য মজবুত ভিত্তি গড়ে তুলবে।

    — প্রোগ্রামিং শেখার আনন্দ উপভোগ করো! —