Lesson ৭ মিনিট পড়া

অপারেটর এবং এক্সপ্রেশন (Operators & Expressions)

আপনার কোডের প্রতিটি সিদ্ধান্তের পেছনে থাকা গণিত এবং লজিক

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

পাইথন মূলত একটি সুপার-পাওয়ার্ড ক্যালকুলেটর। এতে আপনার পরিচিত সব সাধারণ বৈশিষ্ট্য রয়েছে — যোগ, বিয়োগ, গুণ, ভাগ — তবে আরও কিছু দারুণ অতিরিক্ত বিষয়ও রয়েছে যা বেশিরভাগ ক্যালকুলেটরে থাকে না।

  • + যোগ, - বিয়োগ, * গুণ — সাধারণ জিনিসগুলো।
  • / প্রকৃত ভাগ (True division) — আপনাকে সবসময় একটি ফ্লোট (float) বা দশমিক সংখ্যা দেয়: 7 / 23.5
  • // ফ্লোর ডিভিশন (Floor division) — ভাগ করে এবং নিচের কাছের পূর্ণসংখ্যায় নিয়ে আসে: 7 // 23
  • % মডুলো (Modulo) — ভাগ করার পর আপনাকে ভাগশেষ দেয়: 7 % 21। কোনো সংখ্যা জোড় না বিজোড় তা পরীক্ষা করার জন্য এটি দারুণ কাজ দেয়!
  • ** পাওয়ার বা ঘাত (Power) — সূচক: 2 ** 101024

অ্যারিথমেটিক বা পাটিগণিতের প্রয়োগ (Arithmetic in Action)

# Pizza math!
total_slices = 8
people = 3
slices_each = total_slices // people # Floor division
leftovers = total_slices % people # Modulo
print(f"Each person gets {slices_each} slices")
print(f"Leftover slices: {leftovers}")
# Power up!
print(2 ** 10) # 2 to the power of 10
print(9 ** 0.5) # Square root trick!
Output
Each person gets 2 slices
Leftover slices: 2
1024
3.0

কম্পারিজন এবং লজিক্যাল অপারেটর (Comparison & Logical Operators)

কম্পারিজন অপারেটরগুলো আপনাকে ভ্যালু সম্পর্কে প্রশ্ন জিজ্ঞাসা করার সুযোগ দেয়। এর উত্তর সব সময় True বা False হয়।

  • == সমান বা Equal to (দুটি সমান চিহ্ন — একটি = হলো অ্যাসাইনমেন্ট!)
  • != সমান নয় বা Not equal to
  • <, >, <=, >= ছোট/বড় (বা সমান)

লজিক্যাল অপারেটর আপনাকে একাধিক True/False ভ্যালুকে একত্রিত (Combine) করার সুযোগ দেয়:

  • and — উভয়কেই True হতে হবে: True and FalseFalse
  • or — যেকোনো একটি True হতে হবে: True or FalseTrue
  • not — ভ্যালুটিকে উল্টে দেয়: not TrueFalse

তুলনা করা (Making Comparisons)

age = 14
has_ticket = True
# Comparison operators
print(age >= 13) # Old enough for the movie?
print(age == 14) # Exactly 14?
print(age != 21) # Not 21?
# Logical operators — combine conditions
can_enter = age >= 13 and has_ticket
print(f"Can enter: {can_enter}")
# Python lets you chain comparisons!
score = 85
print(70 <= score <= 100) # Is score between 70 and 100?
Output
True
True
True
Can enter: True
True

অপারেটর প্রেসিডেন্স বা অগ্রাধিকার (Operator Precedence)

অংকের ক্লাসের মতোই, পাইথনও অপারেশনের ক্রম (Order of operations) অনুসরণ করে। এখানে সর্বোচ্চ থেকে সর্বনিম্ন অগ্রাধিকার বা প্রায়োরিটি দেওয়া হলো:

  1. () — আগে ব্র্যাকেটের কাজ (সবসময় জেতে)
  2. ** — পাওয়ার বা ঘাত
  3. *, /, //, % — গুণ এবং ভাগের পরিবার
  4. +, - — যোগ এবং বিয়োগের পরিবার
  5. ==, !=, <, >, ইত্যাদি — তুলনা বা কম্পারিজন
  6. notandor — লজিক্যাল (not সবকিছুর আগে কাজ করে)

যখন সন্দেহ থাকবে, ব্র্যাকেট বা প্যারেন্থেসিস ব্যবহার করুন! এগুলো আপনার কোডকে পড়তে সহজ করে এবং সঠিক ক্রম নিশ্চিত করে।

প্রেসিডেন্স বা অগ্রাধিকারের চমক (Precedence Surprises)

# Without parentheses — can be confusing
result = 2 + 3 * 4
print(result) # 14, not 20! (* before +)
# With parentheses — crystal clear
result = (2 + 3) * 4
print(result) # 20
# Logical precedence trap
x = True or False and False
print(x) # True! (and runs before or)
x = (True or False) and False
print(x) # False (parentheses change everything)
# Augmented assignment — shortcuts!
score = 100
score += 10 # same as score = score + 10
score *= 2 # same as score = score * 2
print(score)
Output
14
20
True
False
220
Note: and-কে একজন কড়া শিক্ষকের মতো চিন্তা করুন যার জন্য সব হোমওয়ার্ক করা প্রয়োজন, আর or-কে একজন শান্ত শিক্ষকের মতো চিন্তা করুন যিনি যেকোনো একটা করলেই খুশি। এবং not? সে হলো সেই ছেলে যে আপনি যা বলবেন তার উল্টোটা করে।
চ্যালেঞ্জ

ছোট কুইজ

17 % 5 কী রিটার্ন করে?
Variables & Data TypesStrings & Formatting