- Operator কী? — সহজ পরিচয়
- Arithmetic Operators — গাণিতিক হিসাব
- Comparison Operators — তুলনা করা
- Logical Operators — and, or, not
- Assignment Operators — মান নির্ধারণ
- Identity ও Membership Operators
- Operator Precedence — কোনটি আগে?
- Expressions — জটিল হিসাব একলাইনে
- প্র্যাকটিক্যাল প্রজেক্ট — Grade Calculator
- সারাংশ ও অনুশীলন
গত দুটো পর্বে আমরা Python ইনস্টল করেছি, Variable ও Data Type শিখেছি। এই পর্বে আমরা শিখব Operators — যেগুলো দিয়ে ডেটার উপর বিভিন্ন কাজ করা যায়। গণনা, তুলনা, সিদ্ধান্ত — সব কিছুতেই Operator লাগে।
Operator হলো বিশেষ চিহ্ন বা কীওয়ার্ড যা দিয়ে ডেটার উপর কোনো কাজ করা হয়। যেমন — গণিতের +, -, *, / এগুলো সবই Operator।
Operand হলো যেসব মান বা Variable-এর উপর Operator কাজ করে। যেমন 10 + 5-এ 10 এবং 5 হলো Operand, + হলো Operator।
Python-এ Operator ৬ ভাগে ভাগ করা যায়:
| ধরন | কাজ | উদাহরণ |
|---|---|---|
| Arithmetic | গাণিতিক হিসাব | + - * / // % ** |
| Comparison | দুটি মান তুলনা করা | == != > < >= <= |
| Logical | শর্ত যুক্ত/বিয়োগ করা | and or not |
| Assignment | Variable-এ মান দেওয়া | = += -= *= /= |
| Identity | একই Object কিনা যাচাই | is is not |
| Membership | কোনো কিছুর মধ্যে আছে কিনা | in not in |
গাণিতিক কাজের জন্য ব্যবহৃত Operator। এগুলো সবচেয়ে বেশি ব্যবহার হয়।
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
% Operator ভাগশেষ দেয়। এটি দিয়ে জোড়/বিজোড় সংখ্যা চেনা, সময় হিসাব, এবং অনেক কাজ করা যায়।
# জোড় না বিজোড়? 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 মিনিট
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 ব্যবহার হয়। ফলাফল সবসময় True অথবা False হয়।
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 — দুটি মান সমান কিনা যাচাই। এই পার্থক্য অনেকে ভুলে যায়!
Comparison Operator শুধু সংখ্যায় না, String-এও কাজ করে।
naam1 = "রাহিম" naam2 = "করিম" naam3 = "রাহিম" print(naam1 == naam2) # False print(naam1 == naam3) # True print(naam1 != naam2) # True
False True True
Logical Operator দিয়ে একাধিক শর্ত একসাথে যাচাই করা যায়। এগুলো সবসময় True বা False ফেরত দেয়।
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
| True | True | ✅ True | ✅ True | ❌ False |
| True | False | ❌ False | ✅ True | ❌ False |
| False | True | ❌ False | ✅ True | ✅ True |
| False | False | ❌ False | ❌ False | ✅ True |
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
boyos = 30 income = 45000 has_job = True # বয়স ১৮-৬০, আয় ২০০০০+ এবং চাকরি আছে eligible = (boyos >= 18 and boyos <= 60) and \ (income >= 20000) and has_job print(f"ঋণ পাওয়ার যোগ্য: {eligible}")
ঋণ পাওয়ার যোগ্য: True
Variable-এ মান দেওয়া বা Update করার জন্য 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 কোড ছোট ও পড়তে সহজ করে।
is Operator যাচাই করে দুটি Variable একই Object কিনা। == শুধু মান সমান কিনা দেখে, কিন্তু is দেখে আসলেই একই জায়গায় সংরক্ষিত কিনা।
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 এখনো কোনো ফলাফল নেই
in Operator দিয়ে যাচাই করা যায় কোনো মান কোনো String বা List-এর মধ্যে আছে কিনা।
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
একটি Expression-এ যখন একাধিক Operator থাকে, Python একটি নির্দিষ্ট ক্রমে হিসাব করে — ঠিক গণিতের BODMAS নিয়মের মতো।
| ক্রম (উপর = বেশি গুরুত্ব) | Operator | নাম |
|---|---|---|
| ১ | ( ) | Parentheses (বন্ধনী) |
| ২ | ** | Exponentiation (ঘাত) |
| ৩ | +x -x | Unary Plus / Minus |
| ৪ | * / // % | গুণ, ভাগ, পূর্ণ ভাগ, ভাগশেষ |
| ৫ | + - | যোগ, বিয়োগ |
| ৬ | == != > < >= <= | Comparison |
| ৭ | not | Logical NOT |
| ৮ | and | Logical AND |
| ৯ | or | Logical OR |
# গুণ আগে, তারপর যোগ 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 মনে না থাকলে সবসময় ( ) বন্ধনী ব্যবহার করো। এটি কোড পড়তেও সহজ করে এবং ভুলের সম্ভাবনা কমায়।
Expression হলো Operator ও Operand-এর সমন্বয় যা একটি মান তৈরি করে। Python-এ একটি লাইনেই অনেক জটিল হিসাব করা যায়।
# বৃত্তের ক্ষেত্রফল 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
এই পর্বে শেখা সব Operator একসাথে ব্যবহার করে একটি সম্পূর্ণ Grade Calculator বানাই। ৫টি বিষয়ের নম্বর নিয়ে গড়, শতকরা এবং গ্রেড বের করবে।
৫ বিষয়ের নম্বর input নিয়ে — মোট, গড়, শতকরা এবং পাস/ফেল বের করবে।
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 প্রজেক্ট তৈরি
- সব Arithmetic Operator: দুটি সংখ্যা input নিয়ে সব ধরনের গাণিতিক হিসাব প্রিন্ট করো
- জোড়/বিজোড় চেকার: একটি সংখ্যা input নিয়ে জোড় না বিজোড় সেটা প্রিন্ট করো (% 2 == 0 ব্যবহার করো)
- BMI + বিশ্লেষণ: পর্ব ২-এর BMI Calculator-এ যোগ করো — BMI < 18.5 তাহলে "কম ওজন", 18.5-24.9 তাহলে "স্বাভাবিক", >= 25 তাহলে "অতিরিক্ত ওজন"
- ভোটার যোগ্যতা: বয়স ও নাগরিকত্ব (True/False) input নিয়ে ভোট দিতে পারবে কিনা যাচাই করো
- টেম্পারেচার কনভার্টার: সেলসিয়াস নিয়ে ফারেনহাইট ও কেলভিন উভয়ে রূপান্তর করো
- if, elif, else — শর্ত অনুযায়ী সিদ্ধান্ত নেওয়া
- Nested if — if-এর ভেতরে if
- Ternary Operator — এক লাইনে if/else
- বাস্তব প্রজেক্ট — ATM বা লগইন সিস্টেম

0 Comments