Comparison & Logical Operators
Operators ဆိုတာ ဘာလဲ?
ဒီ Chapter မှာ Operator နှစ်မျိုးရှိတယ်။
- Comparison Operators - တန်ဖိုးနှစ်ခုကို နှိုင်းယှဉ်စစ်ဆေးတာ။
- Logical Operators - အခြေနေတွေကို ပေါင်းပြီးစစ်ဆေးတာ။
ဒီနှစ်ခုက အရေးပါတယ်။ Program တွေမှာ ဆုံးဖြတ်ချက်ချရမယ့် နေရာတိုင်းမှာ သုံးရတယ်။ If-Else Statement တွေမှာ မဖြစ်မနေ လိုတယ်။
Comparison Operators (နှိုင်းယှဉ်စစ်မယ်)
Comparison Operators တွေက ရိုးရှင်းတယ်။ သူတို့က တန်ဖိုး (value) နှစ်ခုကို နှိုင်းယှဉ်ပြီး မှန်လား (True) မှားလား (False) ဆိုတဲ့ အဖြေ (Boolean) တစ်ခုပဲ အမြဲတမ်း ပြန်ပေးတယ်။
1. == (ညီလား - Equal to)
= (တစ်လုံးတည်း) က Variable ထဲကို တန်ဖိုးထည့်တာ (Assignment)။
x = 5 (x ထဲကို 5 ထည့်လိုက်တာ)
== (နှစ်လုံး) က တန်ဖိုးနှစ်ခု တူလား လို့ စစ်တာ (Comparison)။
x == 5 (x ထဲကကောင် 5 နဲ့ တူလား လို့ မေးတာ)
print(5 == 5) # 5 က 5 နဲ့ တူလား?
# အဖြေ: True
print(5 == 6) # 5 က 6 နဲ့ တူလား?
# အဖြေ: False
# String နဲ့လည်း သုံးလို့ရတယ်
print("hello" == "hello")
# အဖြေ: True2. != (မညီဘူးလား - Not equal to)
== ရဲ့ ပြောင်းပြန်။ မတူဘူး ဆို True ပြန်ပေးတယ်။
print(5 != 6) # 5 က 6 နဲ့ မတူဘူးလား? (ဟုတ်တယ် မတူဘူး)
# အဖြေ: True
print(5 != 5) # 5 က 5 နဲ့ မတူဘူးလား? (မဟုတ်ဘူး တူတယ်)
# အဖြေ: False3. > (ကြီးလား - Greater than)
print(10 > 5) # 10 က 5 ထက် ကြီးလား?
# အဖြေ: True
print(5 > 10) # 5 က 10 ထက် ကြီးလား?
# အဖြေ: False4. < (ငယ်လား - Less than)
print(10 < 5) # 10 က 5 ထက် ငယ်လား?
# အဖြေ: False
print(5 < 10) # 5 က 10 ထက် ငယ်လား?
# အဖြေ: True5. >= (ကြီးလား သို့မဟုတ် ညီလား - Greater than or equal to)
ကြီးလည်း True ပဲ။ တူလည်း True ပဲ။
print(10 >= 5) # 10 က 5 ထက် ကြီးတယ် (True)
# အဖြေ: True
print(10 >= 10) # 10 က 10 နဲ့ ညီတယ် (True)
# အဖြေ: True
print(5 >= 10) # 5 က 10 ထက် မကြီးဘူး (False)
# အဖြေ: False6. <= (ငယ်လား သို့မဟုတ် ညီလား - Less than or equal to)
ဒါလည်း တူတူပဲ။
print(10 <= 5) # 10 က 5 ထက် မငယ်ဘူး (False)
# အဖြေ: False
print(10 <= 10) # 10 က 10 နဲ့ ညီတယ် (True)
# အဖြေ: True
print(5 <= 10) # 5 က 10 ထက် ငယ်တယ် (True)
# အဖြေ: TrueComparison Operators အကျဉ်း:
# Comparison Operators အားလုံး
x = 10
y = 5
print(x == y) # False (10 နဲ့ 5 မတူ)
print(x != y) # True (10 နဲ့ 5 မတူ)
print(x > y) # True (10 က 5 ထက် ကြီး)
print(x < y) # False (10 က 5 ထက် မငယ်)
print(x >= y) # True (10 က 5 ထက် ကြီး)
print(x <= y) # False (10 က 5 ထက် မငယ်)Logical Operators
အပေါ်က True / False အဖြေတွေကို ပေါင်းစပ်ပြီး စစ်ဆေးဖို့ သုံးတယ်။
ဥပမာ - Club ဝင်ခွင့် စစ်မယ်:
- အသက် 18 လည်း ပြည့်ရမယ်။ (AND)
- ပိုက်ဆံ 5000 လည်း ပါရမယ်။
အဲ့လို AND တွေ OR တွေ သုံးတာကို Logical Operators လို့ခေါ်တယ်။
1. and (နှစ်ခုလုံး မှန်မှ မှန်မယ်)
and က စည်းကမ်းကြီးတယ်။ သူနဲ့ ချိတ်ထားတဲ့ အခြေနေ (Condition) နှစ်ခုလုံး True ဖြစ်မှ သူက True ပြန်ပေးတယ်။ တစ်ခုလေး False ဖြစ်တာနဲ့ သူက လုံးဝ False ဖြစ်သွားမယ်။
age = 20
money = 10000
# (age > 18) က True၊ (money > 5000) က True
print( (age > 18) and (money > 5000) )
# အဖြေ: True (ကဲ... bro ဝင်လို့ရပြီ)age = 20
money = 3000 # ပိုက်ဆံမပြည့်ဘူး
# (age > 18) က True၊ (money > 5000) က False
print( (age > 18) and (money > 5000) )
# အဖြေ: False (True and False ဆိုတော့ False ပဲ။ bro ဝင်မရဘူး။)and Operator Truth Table:
# and Operator အလုပ်လုပ်ပုံ (နှစ်ခုလုံး True မှ True)
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False2. or (တစ်ခု မှန်ရင် မှန်ပြီ)
or က စိတ်ပူတယ်။ တစ်ခုခု True ဖြစ်တာနဲ့ သူက OK ပြီ၊ True ပြန်ပေးတယ်။ နှစ်ခုလုံး False ဖြစ်မှပဲ သူက False ဖြစ်တယ်။
ဥပမာ - Bus ကား စီးမယ်။ ကျောင်းသားကတ် ပါရင် ရတယ် OR VIP ကတ် ပါရင် ရတယ်။
has_student_card = False
has_vip_card = True
# (False) or (True)
print(has_student_card or has_vip_card)
# အဖြေ: True (VIP ကတ် ပါတာနဲ့ စီးလို့ရပြီ)has_student_card = False
has_vip_card = False
# (False) or (False)
print(has_student_card or has_vip_card)
# အဖြေ: False (နှစ်ခုလုံး မပါရင်တော့ သွားပြီ။ စီးမရဘူး။)or Operator Truth Table:
# or Operator အလုပ်လုပ်ပုံ (တစ်ခု True ရင် True)
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False3. not (ပြောင်းပြန်လှန်မယ်)
ဒါက အရှင်းဆုံး။ သူက True ကို False ပြောင်းတယ်။ False ကို True ပြောင်းတယ်။ ပြောင်းပြန်လှန်တာ။
is_raining = True
print(not is_raining)
# အဖြေ: False
is_raining = False
print(not is_raining)
# အဖြေ: True- and - နှစ်ခုလုံး True မှ True ပြန်ပေးတယ်။
- or - တစ်ခု True ရင် True ပြန်ပေးတယ်။
- not - True ကို False၊ False ကို True ပြောင်းတယ်။
Practical Examples
Example 1: Boss Fight Game
ကဲ... အကုန်ပေါင်းပြီး စမ်းကြည့်မယ်။
Scenario: ဂိမ်းတစ်ခုမှာ Boss ကို တိုက်ခွင့်ရဖို့ စစ်မယ်။
- bro level က 50 ကျော် ရမယ် AND bro strength က 100 ကျော် ရမယ်။
- OR (ဒါမှမဟုတ်) bro မှာ Special Key (အထူးသော့) ရှိရမယ်။
level = 45
strength = 120
has_special_key = True
# ကွင်း ( ) ကို သေချာကြည့်။ and ကို အရင်ရှင်းမယ်။
can_fight_boss = (level > 50 and strength > 100) or (has_special_key == True)
# ရှင်းပြချက်:
# 1. (level > 50) -> (45 > 50) -> False
# 2. (strength > 100) -> (120 > 100) -> True
# 3. (has_special_key == True) -> (True == True) -> True
# အခု ပြန်အစားထိုး:
# (False and True) or (True)
# 4. (False and True) -> False (and က တစ်ခုမှားတာနဲ့ မှားတယ်)
# 5. (False) or (True)
# 6. အဖြေ -> True (or က တစ်ခုမှန်တာနဲ့ မှန်တယ်)
print(can_fight_boss)
# အဖြေ: True (bro Boss တိုက်လို့ရပြီ)Example 2: Login System (Username AND Password စစ်တာ)
print("=== Login System ===")
# အချက်လက် အမှန်
correct_username = "admin"
correct_password = "pass123"
# User ထည့်မယ်
username = input("Username: ")
password = input("Password: ")
# နှစ်ခုလုံး မှန်မှ Login ဝင်လို့ရမယ် (and သုံးတယ်)
if username == correct_username and password == correct_password:
print("\nLogin အောင်မြင်ပါတယ်!")
print("ကြိုဆိုပါတယ် bro")
else:
print("\nLogin မအောင်မြင်ပါ!")
print("Username သို့မဟုတ် Password မှားနေပါတယ်")Example 3: Age Verification System (အသက် စစ်တာ)
print("=== အသက်အရွယ် စစ်ဆေးမယ် ===")
age = int(input("Bro ရဲ့ အသက်: "))
has_parental_consent = input("မိဘခွင့်ပြုချက် ရှိလား? (yes/no): ").lower() == "yes"
# အသက် 18 ကျော်ရမယ် OR မိဘခွင့်ပြုချက် ရှိရမယ်
if age >= 18 or has_parental_consent:
print("\nဝင်ခွင့်ပြုပါတယ်!")
if age >= 18:
print("အသက် 18 ပြည့်ပြီး ဖြစ်လို့")
else:
print("မိဘခွင့်ပြုချက် ရှိလို့")
else:
print("\nဝင်ခွင့်မပြုပါ!")
print("အသက် 18 မပြည့်သေးဘူး၊ မိဘခွင့်ပြုချက်လည်း မရှိဘူး")Example 4: လျှော့စျေး ရခွင့်
print("=== လျှော့စျေး စစ်ဆေးမယ် ===")
total_amount = float(input("စုစုပေါင်း ငွေ: "))
is_member = input("Member လား? (yes/no): ").lower() == "yes"
is_weekend = input("Weekend လား? (yes/no): ").lower() == "yes"
discount = 0
# လျှော့စျေး ရ/မရ စစ်မယ်
# (Member ဖြစ်ရမယ် AND ငွေ 50000 ကျော်ရမယ်) OR Weekend ဖြစ်ရမယ်
if (is_member and total_amount > 50000) or is_weekend:
discount = 15
print("\nဂုဏ်ယူပါတယ်! 15% လျှော့စျေး ရရှိပါမယ်!")
if is_weekend:
print("အကြောင်းရင်း: Weekend Special Offer")
else:
print("အကြောင်းရင်း: Member + ငွေ 50000 ကျော်")
elif is_member:
discount = 5
print("\nMember လျှော့စျေး: 5%")
else:
print("\nလျှော့စျေး မရရှိပါ")
# နောက်ဆုံး ငွေ တွက်မယ်
discount_amount = total_amount * discount / 100
final_amount = total_amount - discount_amount
print(f"\nမူလ ငွေ: {total_amount} ကျပ်")
print(f"လျှော့စျေး: {discount}% ({discount_amount} ကျပ်)")
print(f"ပေးရမည့် ငွေ: {final_amount} ကျပ်")Example 5: Complex Conditions
print("=== စာမေးပွဲဖြေဆိုခွင့် စစ်ဆေးမယ် ===")
attendance = float(input("တက်ရောက်မှု (%): "))
homework_done = int(input("အိမ်စာလုပ်ပြီးသား (အရေအတွက်): "))
has_medical_reason = input("ဆေးဝါးဆိုင်ရာ အကြောင်းပြချက် ရှိလား? (yes/no): ").lower() == "yes"
# စာမေးပွဲဖြေဆိုခွင့် ရဖို့:
# (တက်ရောက်မှု 75% ကျော် AND အိမ်စာ 8 ခုကျော် လုပ်ပြီး) OR ဆေးဝါးဆိုင်ရာ အကြောင်းပြချက် ရှိရမယ်
eligible = (attendance >= 75 and homework_done >= 8) or has_medical_reason
if eligible:
print("\nစာမေးပွဲ ဖြေခွင့်ရှိပါတယ်!")
if has_medical_reason:
print("အကြောင်းရင်း: ဆေးဝါးဆိုင်ရာ ခွင့်ပြုချက်")
else:
print("အကြောင်းရင်း: တက်ရောက်မှု နဲ့ အိမ်စာ အရည်အချင်းပြည့်မှီ")
else:
print("\nစာမေးပွဲ ဖြေခွင့်မရှိပါ")
print("အကြောင်းရင်း: တက်ရောက်မှု သို့မဟုတ် အိမ်စာ မပြည့်မီပါ")အနှစ်ချုပ်
Comparison Operators:
စစ်တယ်။ အဖြေ True ဒါမှမဟုတ် False ပဲ ပြန်ပေးတယ်။
- == ညီလား?
- != မညီဘူးလား?
- > ကြီးလား?
- < ငယ်လား?
- >= ကြီးလား သို့မဟုတ် ညီလား?
- <= ငယ်လား သို့မဟုတ် ညီလား?
= ထည့်တာ (Assignment)
== စစ်တာ (Comparison)
Logical Operators:
- and - နှစ်ခုလုံး မှန်မှ True။
- or - တစ်ခု မှန်ရင် True။
- not - ပြောင်းပြန်လှန်တာ။
Quick Reference
# Comparison Operators
print(5 == 5) # True (တူတယ်)
print(5 != 6) # True (မတူဘူး)
print(10 > 5) # True (ကြီးတယ်)
print(5 < 10) # True (ငယ်တယ်)
print(10 >= 10) # True (ကြီးတယ် သို့မဟုတ် ညီတယ်)
print(5 <= 10) # True (ငယ်တယ် သို့မဟုတ် ညီတယ်)
# Logical Operators
print(True and True) # True (နှစ်ခုလုံး မှန်)
print(True and False) # False (တစ်ခု မှား)
print(False or True) # True (တစ်ခု မှန်)
print(False or False) # False (နှစ်ခုလုံး မှား)
print(not True) # False (ပြောင်းပြန်)
print(not False) # True (ပြောင်းပြန်)
# Combined Examples
x = 10
y = 5
print((x > 5) and (y < 10)) # True (နှစ်ခုလုံး မှန်)
print((x == 10) or (y == 10)) # True (တစ်ခု မှန်)