Hot Post

6/recent/ticker-posts

Header Ads Widget

Python শেখার সিরিজ — পর্ব ৩ / ২০ (Operators ও Expressions)

🐍 Python শেখার সিরিজ — পর্ব ৩ / ২০
python learning

Operators ও Expressions
Python-এর সব ধরনের Operator — গাণিতিক, তুলনামূলক, লজিক্যাল, Assignment এবং কোনটি আগে হিসাব হয় — সহজ বাংলায়
⏱ পড়তে সময় ~১৫ মিনিট 🎯 Beginner Friendly 🐍 Python 3.x

গত দুটো পর্বে আমরা Python ইনস্টল করেছি, Variable ও Data Type শিখেছি। এই পর্বে আমরা শিখব Operators — যেগুলো দিয়ে ডেটার উপর বিভিন্ন কাজ করা যায়। গণনা, তুলনা, সিদ্ধান্ত — সব কিছুতেই Operator লাগে।

🔣 Operator কী? — সহজ পরিচয়

Operator হলো বিশেষ চিহ্ন বা কীওয়ার্ড যা দিয়ে ডেটার উপর কোনো কাজ করা হয়। যেমন — গণিতের +, -, *, / এগুলো সবই Operator।

Operand হলো যেসব মান বা Variable-এর উপর Operator কাজ করে। যেমন 10 + 5-এ 10 এবং 5 হলো Operand, + হলো Operator।

Python-এ Operator ৬ ভাগে ভাগ করা যায়:

ধরনকাজউদাহরণ
Arithmeticগাণিতিক হিসাব+ - * / // % **
Comparisonদুটি মান তুলনা করা== != > < >= <=
Logicalশর্ত যুক্ত/বিয়োগ করাand or not
AssignmentVariable-এ মান দেওয়া= += -= *= /=
Identityএকই Object কিনা যাচাইis is not
Membershipকোনো কিছুর মধ্যে আছে কিনাin not in
➕ Arithmetic Operators — গাণিতিক হিসাব

গাণিতিক কাজের জন্য ব্যবহৃত Operator। এগুলো সবচেয়ে বেশি ব্যবহার হয়।

+যোগ
-বিয়োগ
*গুণ
/ভাগ
//পূর্ণ ভাগ
%ভাগশেষ
**ঘাত
Python — Arithmetic Operators
a = 17
b = 5

print(f"যোগ:        {a} + {b} = {a + b}")
print(f"বিয়োগ:     {a} - {b} = {a - b}")
print(f"গুণ:        {a} * {b} = {a * b}")
print(f"ভাগ:        {a} / {b} = {a / b}")
print(f"পূর্ণ ভাগ:  {a} // {b} = {a // b}")
print(f"ভাগশেষ:    {a} % {b} = {a % b}")
print(f"ঘাত:        {a} ** {b} = {a ** b}")
✔ আউটপুট
যোগ:        17 + 5 = 22
বিয়োগ:     17 - 5 = 12
গুণ:        17 * 5 = 85
ভাগ:        17 / 5 = 3.4
পূর্ণ ভাগ:  17 // 5 = 3
ভাগশেষ:    17 % 5 = 2
ঘাত:        17 ** 5 = 1419857
% (Modulo) — কেন এত গুরুত্বপূর্ণ?

% Operator ভাগশেষ দেয়। এটি দিয়ে জোড়/বিজোড় সংখ্যা চেনা, সময় হিসাব, এবং অনেক কাজ করা যায়।

Python — Modulo-র ব্যবহার
# জোড় না বিজোড়?
number = 14
print(number % 2)   # 0 মানে জোড়, 1 মানে বিজোড়

# মিনিটকে ঘণ্টায় রূপান্তর
total_minutes = 145
hours   = total_minutes // 60
minutes = total_minutes % 60
print(f"{total_minutes} মিনিট = {hours} ঘণ্টা {minutes} মিনিট")
✔ আউটপুট
0
145 মিনিট = 2 ঘণ্টা 25 মিনিট
** (Power) — ঘাত হিসাব
Python
print(2 ** 10)   # 1024 (2 এর 10 ঘাত)
print(9 ** 0.5)  # 3.0  (বর্গমূল)
print(5 ** 3)    # 125  (5 এর ঘনফল)
✔ আউটপুট
1024
3.0
125

মনে রাখো: / সবসময় Float দেয় (যেমন 10/2 = 5.0)। পূর্ণ সংখ্যার ফলাফল চাইলে // ব্যবহার করো।

⚖️ Comparison Operators — তুলনা করা

দুটি মান তুলনা করতে Comparison Operators ব্যবহার হয়। ফলাফল সবসময় True অথবা False হয়।

==সমান
!=সমান নয়
>বড়
<ছোট
>=বড় বা সমান
<=ছোট বা সমান
Python — Comparison Operators
x = 10
y = 20

print(x == y)   # False (10 কি 20-এর সমান?)
print(x != y)   # True  (10 কি 20-এর সমান নয়?)
print(x < y)    # True  (10 কি 20-এর চেয়ে ছোট?)
print(x > y)    # False (10 কি 20-এর চেয়ে বড়?)
print(x <= 10)  # True  (10 কি 10-এর চেয়ে ছোট বা সমান?)
print(x >= 15)  # False (10 কি 15-এর চেয়ে বড় বা সমান?)
✔ আউটপুট
False
True
True
False
True
False
⚠️

সাবধান: = (একটি সমান) মানে Assignment — Variable-এ মান দেওয়া। == (দুটি সমান) মানে Comparison — দুটি মান সমান কিনা যাচাই। এই পার্থক্য অনেকে ভুলে যায়!

String তুলনা

Comparison Operator শুধু সংখ্যায় না, String-এও কাজ করে।

Python
naam1 = "রাহিম"
naam2 = "করিম"
naam3 = "রাহিম"

print(naam1 == naam2)   # False
print(naam1 == naam3)   # True
print(naam1 != naam2)   # True
✔ আউটপুট
False
True
True
🧠 Logical Operators — and, or, not

Logical Operator দিয়ে একাধিক শর্ত একসাথে যাচাই করা যায়। এগুলো সবসময় True বা False ফেরত দেয়।

andউভয় সত্য হলে True
orযেকোনো একটি সত্য হলে True
notউল্টো করে দেয়
ABA and BA or Bnot A
TrueTrue✅ True✅ True❌ False
TrueFalse❌ False✅ True❌ False
FalseTrue❌ False✅ True✅ True
FalseFalse❌ False❌ False✅ True
Python — Logical Operators
boyos      = 25
income     = 30000
has_job    = True
has_degree = False

# and: দুটোই সত্য হতে হবে
print(boyos >= 18 and has_job)     # True
print(has_job and has_degree)          # False

# or: যেকোনো একটি সত্য হলেই চলবে
print(has_job or has_degree)           # True
print(income > 50000 or has_job)       # True

# not: উল্টো করে দেয়
print(not has_degree)                    # True
print(not has_job)                       # False
✔ আউটপুট
True
False
True
True
True
False
বাস্তব উদাহরণ — ঋণ পাওয়ার যোগ্যতা
Python
boyos    = 30
income   = 45000
has_job  = True

# বয়স ১৮-৬০, আয় ২০০০০+ এবং চাকরি আছে
eligible = (boyos >= 18 and boyos <= 60) and \
            (income >= 20000) and has_job

print(f"ঋণ পাওয়ার যোগ্য: {eligible}")
✔ আউটপুট
ঋণ পাওয়ার যোগ্য: True
📝 Assignment Operators — মান নির্ধারণ

Variable-এ মান দেওয়া বা Update করার জন্য Assignment Operators ব্যবহার হয়। এগুলো কোড সংক্ষিপ্ত করে।

=assign
+=যোগ করে রাখো
-=বিয়োগ করে রাখো
*=গুণ করে রাখো
/=ভাগ করে রাখো
//=পূর্ণ ভাগ রাখো
%=ভাগশেষ রাখো
**=ঘাত করে রাখো
Python — Assignment Operators
score = 100
print(f"শুরুতে: {score}")

score += 50    # score = score + 50
print(f"+50 পরে: {score}")

score -= 30    # score = score - 30
print(f"-30 পরে: {score}")

score *= 2     # score = score * 2
print(f"*2 পরে: {score}")

score //= 4    # score = score // 4
print(f"//4 পরে: {score}")
✔ আউটপুট
শুরুতে: 100
+50 পরে: 150
-30 পরে: 120
*2 পরে: 240
//4 পরে: 60
💡

Shortcut: score += 50 লেখা আর score = score + 50 লেখা একই কথা। Assignment Operators কোড ছোট ও পড়তে সহজ করে।

🔎 Identity ও Membership Operators
Identity Operators — is, is not

is Operator যাচাই করে দুটি Variable একই Object কিনা। == শুধু মান সমান কিনা দেখে, কিন্তু is দেখে আসলেই একই জায়গায় সংরক্ষিত কিনা।

Python — Identity Operators
a = None
b = None

print(a is None)       # True
print(a is not None)   # False
print(a is b)           # True (দুটোই None)

# None চেক করার সেরা পদ্ধতি হলো 'is'
result = None
if result is None:
    print("এখনো কোনো ফলাফল নেই")
✔ আউটপুট
True
False
True
এখনো কোনো ফলাফল নেই
Membership Operators — in, not in

in Operator দিয়ে যাচাই করা যায় কোনো মান কোনো String বা List-এর মধ্যে আছে কিনা।

Python — Membership Operators
naam = "রাহিম করিম সালমা"

print("করিম" in naam)       # True
print("জামাল" in naam)      # False
print("সালমা" not in naam)  # False

# List-এও কাজ করে
fruits = ["আম", "কলা", "লিচু"]
print("আম" in fruits)          # True
print("আপেল" not in fruits)   # True
✔ আউটপুট
True
False
False
True
True
🏆 Operator Precedence — কোনটি আগে হিসাব হয়?

একটি Expression-এ যখন একাধিক Operator থাকে, Python একটি নির্দিষ্ট ক্রমে হিসাব করে — ঠিক গণিতের BODMAS নিয়মের মতো।

ক্রম (উপর = বেশি গুরুত্ব)Operatorনাম
( )Parentheses (বন্ধনী)
**Exponentiation (ঘাত)
+x -xUnary Plus / Minus
* / // %গুণ, ভাগ, পূর্ণ ভাগ, ভাগশেষ
+ -যোগ, বিয়োগ
== != > < >= <=Comparison
notLogical NOT
andLogical AND
orLogical OR
Python — Precedence উদাহরণ
# গুণ আগে, তারপর যোগ
print(2 + 3 * 4)        # 14 (3*4=12, তারপর 2+12=14)
print((2 + 3) * 4)      # 20 (বন্ধনী আগে: 2+3=5, তারপর 5*4=20)

# ঘাত সবার আগে
print(2 ** 3 + 1)        # 9 (2**3=8, তারপর 8+1=9)
print(2 ** (3 + 1))      # 16 (3+1=4, তারপর 2**4=16)

# জটিল উদাহরণ
result = 10 + 2 * 5 - 4 // 2
print(result)               # 18 (2*5=10, 4//2=2, 10+10-2=18)
✔ আউটপুট
14
20
9
16
18

সেরা পরামর্শ: Precedence মনে না থাকলে সবসময় ( ) বন্ধনী ব্যবহার করো। এটি কোড পড়তেও সহজ করে এবং ভুলের সম্ভাবনা কমায়।

🔗 Expressions — জটিল হিসাব একলাইনে

Expression হলো Operator ও Operand-এর সমন্বয় যা একটি মান তৈরি করে। Python-এ একটি লাইনেই অনেক জটিল হিসাব করা যায়।

Python — বিভিন্ন Expression
# বৃত্তের ক্ষেত্রফল
radius = 7
area   = 3.14159 * radius ** 2
print(f"ক্ষেত্রফল: {area:.2f}")

# সুদ হিসাব (P * R * T / 100)
principal = 50000
rate      = 8
time      = 3
interest  = (principal * rate * time) / 100
print(f"সুদ: {interest} টাকা")

# সেলসিয়াস থেকে ফারেনহাইট
celsius    = 37
fahrenheit = (celsius * 9 / 5) + 32
print(f"{celsius}°C = {fahrenheit}°F")
✔ আউটপুট
ক্ষেত্রফল: 153.94
সুদ: 12000.0 টাকা
37°C = 98.6°F
🎯 প্র্যাকটিক্যাল প্রজেক্ট — Grade Calculator

এই পর্বে শেখা সব Operator একসাথে ব্যবহার করে একটি সম্পূর্ণ Grade Calculator বানাই। ৫টি বিষয়ের নম্বর নিয়ে গড়, শতকরা এবং গ্রেড বের করবে।

💻 প্রজেক্ট: Grade Calculator

৫ বিষয়ের নম্বর input নিয়ে — মোট, গড়, শতকরা এবং পাস/ফেল বের করবে।

Python — grade_calculator.py
print("╔══════════════════════════╗")
print("║    Grade Calculator      ║")
print("╚══════════════════════════╝")

# ৫ বিষয়ের নম্বর নাও (প্রতিটি ১০০-এর মধ্যে)
bangla   = float(input("বাংলা নম্বর: "))
english  = float(input("ইংরেজি নম্বর: "))
math     = float(input("গণিত নম্বর: "))
science  = float(input("বিজ্ঞান নম্বর: "))
social   = float(input("সমাজ নম্বর: "))

# হিসাব — Arithmetic Operators
total      = bangla + english + math + science + social
average    = total / 5
percentage = (total / 500) * 100

# পাস/ফেল — Comparison ও Logical
all_passed = (bangla >= 33 and english >= 33 and
               math >= 33 and science >= 33 and social >= 33)

# ফলাফল
print("\n══════════════════════════")
print(f"মোট নম্বর   : {total}/500")
print(f"গড় নম্বর   : {average:.2f}")
print(f"শতকরা      : {percentage:.2f}%")
print(f"ফলাফল      : {'পাস ✅' if all_passed else 'ফেল ❌'}")
print("══════════════════════════")
✔ নমুনা আউটপুট
╔══════════════════════════╗
║    Grade Calculator      ║
╚══════════════════════════╝
বাংলা নম্বর: 78
ইংরেজি নম্বর: 82
গণিত নম্বর: 91
বিজ্ঞান নম্বর: 75
সমাজ নম্বর: 68

══════════════════════════
মোট নম্বর   : 394.0/500
গড় নম্বর   : 78.80
শতকরা      : 78.80%
ফলাফল      : পাস ✅
══════════════════════════
💡

কোডের শেষ লাইনে 'পাস ✅' if all_passed else 'ফেল ❌' হলো Python-এর Ternary Expression — এক লাইনে if/else করার সুবিধাজনক উপায়। পর্ব ৪-এ এটি বিস্তারিত শিখব।

📚 এই পর্বে আমরা যা শিখলাম
  • Operator ও Operand কী
  • Arithmetic Operators: +, -, *, /, //, %, **
  • Modulo (%) দিয়ে জোড়/বিজোড় ও সময় হিসাব
  • Comparison Operators: ==, !=, >, <, >=, <=
  • = (assignment) ও == (comparison)-এর পার্থক্য
  • Logical Operators: and, or, not এবং Truth Table
  • Assignment Operators: +=, -=, *=, /= ইত্যাদি
  • Identity Operators: is, is not
  • Membership Operators: in, not in
  • Operator Precedence — BODMAS নিয়মের মতো
  • Grade Calculator প্রজেক্ট তৈরি
🏋️ নিজে চেষ্টা করো
  1. সব Arithmetic Operator: দুটি সংখ্যা input নিয়ে সব ধরনের গাণিতিক হিসাব প্রিন্ট করো
  2. জোড়/বিজোড় চেকার: একটি সংখ্যা input নিয়ে জোড় না বিজোড় সেটা প্রিন্ট করো (% 2 == 0 ব্যবহার করো)
  3. BMI + বিশ্লেষণ: পর্ব ২-এর BMI Calculator-এ যোগ করো — BMI < 18.5 তাহলে "কম ওজন", 18.5-24.9 তাহলে "স্বাভাবিক", >= 25 তাহলে "অতিরিক্ত ওজন"
  4. ভোটার যোগ্যতা: বয়স ও নাগরিকত্ব (True/False) input নিয়ে ভোট দিতে পারবে কিনা যাচাই করো
  5. টেম্পারেচার কনভার্টার: সেলসিয়াস নিয়ে ফারেনহাইট ও কেলভিন উভয়ে রূপান্তর করো
⏭️ পরের পর্বে কী থাকছে? — পর্ব ৪: Conditional Statements
  • if, elif, else — শর্ত অনুযায়ী সিদ্ধান্ত নেওয়া
  • Nested if — if-এর ভেতরে if
  • Ternary Operator — এক লাইনে if/else
  • বাস্তব প্রজেক্ট — ATM বা লগইন সিস্টেম

Post a Comment

0 Comments