Python Booleans

Boolean (bool) ဆိုတာ ဘာလဲ?

Boolean ဆိုတာ ဟုတ်လား (True)၊ မဟုတ်လား (False)... အဲ့ဒီ အဖြေ နှစ်ခုတည်းပဲ ရှိတဲ့ data type။

  • True
  • False

ဘရို မီးခလုတ် ကို စဉ်းစားကြည့်။ ဖွင့် (True) တယ်၊ ပိတ် (False) တယ်။ ကြားထဲမှာ တစ်ဝက် ဖွင့်တာတို့၊ နည်းနည်း ပိတ်တာတို့ မရှိဘူး။ နှစ်ခုတည်း ပဲ။ Python မှာ ဆုံးဖြတ်ချက်ချစရာရှိရင် ဒီကောင်တွေ ကိုသုံးတယ်။

boolean_basics.py
# Boolean တန်ဖိုး နှစ်ခု is_sunny = True is_raining = False print(is_sunny) # True print(is_raining) # False # Type စစ်ကြည့်မယ် print(type(is_sunny)) # <class 'bool'>
သတိ: Python မှာ True နဲ့ False လို့ ရေးရတယ်။ T နဲ့ F က စာလုံးအကြီး (Capital Letter) ဖြစ်ရမယ်။ true (အသေး) ဆိုပြီး သွားမရေးနဲ့။ Error တက်လိမ့်မယ်။
boolean_error.py
# အမှန် correct = True # အဆင်ပြေတယ် correct = False # အဆင်ပြေတယ် # အမှား - Error တက်မယ် # wrong = true # NameError # wrong = false # NameError # wrong = TRUE # NameError

Boolean တွေ ဘယ်ကထွက်လာတာလဲ?

Boolean တွေက မေးခွန်းတွေမေးရာကနေ ထွက်လာတာ။ နှိုင်းယှဉ် လိုက်လို့ ရလာတဲ့အဖြေတွေပေါ့။

Python မှာ နှိုင်းယှဉ် တဲ့ Comparison Operators တွေရှိတယ်:

Comparison Operators
== (တူလား?) != (မတူဘူးလား?) > (ပိုကြီးလား?) < (ပိုငယ်လား?) >= (ကြီးလား သို့မဟုတ် တူလား?) <= (ငယ်လား သို့မဟုတ် တူလား?)

နံပါတ်တွေ နှိုင်းယှဉ်တာ:

number_comparison.py
x = 10 y = 5 # ကဲ... စစ် ကြည့်မယ် print(f"x (10) က y (5) ထက် ကြီးလား? : {x > y}") # Output: x (10) က y (5) ထက် ကြီးလား? : True print(f"x (10) နဲ့ y (5) တူလား? : {x == y}") # Output: x (10) နဲ့ y (5) တူလား? : False print(f"x (10) က y (5) နဲ့ မတူဘူးလား? : {x != y}") # Output: x (10) က y (5) နဲ့ မတူဘူးလား? : True print(f"x (10) က y (5) ထက် ငယ်လား? : {x < y}") # Output: x (10) က y (5) ထက် ငယ်လား? : False print(f"x (10) က y (5) ထက် ကြီးလား တူလား? : {x >= y}") # Output: x (10) က y (5) ထက် ကြီးလား တူလား? : True

String တွေကိုလည်း စစ် လို့ရတယ်:

string_comparison.py
name1 = "Aung" name2 = "Ba" print(f"နာမည်နှစ်ခု တူလား? : {name1 == name2}") # Output: နာမည်နှစ်ခု တူလား? : False # Case sensitive ဖြစ်တယ် print("aung" == "Aung") # False print("aung" == "aung") # True
သတိ: == (နှိုင်းယှဉ်တာ) နဲ့ = (တန်ဖိုးထည့်တာ) ကို မမှားနဲ့။

x = 10 (ဒါက x ထဲကို 10 ထည့် လိုက်တာ)
x == 10 (ဒါက x ထဲကကောင်က 10 ဟုတ်လား လို့စစ်တာ)

if x = 10: လို့ သွားရေးရင် တန်း မှားပြီ။ if x == 10: မှ အမှန်။

Boolean Logical Operators

မေးခွန်းတွေကို ဆင့်ပြီး မေးချင်ရင် (and, or, not) ဆိုတဲ့ keywords ၃ ခုရှိတယ်။

1. and (နှစ်ခုလုံး မှန် မှ အမှန်)

and ဆိုတာ ပြီးတော့ လို့ အဓိပ္ပာယ်ရတယ်။ ဒါရော ဟိုဒါရော မှန်မှ True ပြမယ်။ တစ်ခုခုမှားတာနဲ့ တန်း False ပဲ။

and_operator.py
age = 20 has_license = True # ကားမောင်းခွင့် ရှိလား စစ်မယ် # (အသက် 18 ကျော် ရမယ် ပြီးတော့ လိုင်စင် ရှိ ရမယ်) can_drive = (age > 18) and (has_license == True) print(can_drive) # Output: True (ဘာလို့လဲ? အသက်လည်း 18 ကျော်တယ်၊ လိုင်စင်လည်း ရှိတယ်) # တကယ်လို့ age = 15 ဆိုရင် age2 = 15 can_drive2 = (age2 > 18) and has_license print(can_drive2) # Output: False (အသက် 18 မကျော်သေးလို့)

and Operator Truth Table:

and_truth_table.py
print(True and True) # True print(True and False) # False print(False and True) # False print(False and False) # False

2. or (တစ်ခုခု မှန် ရင် အမှန်)

or ဆိုတာ တစ်ခုမဟုတ်တစ်ခု။ ဒါ ဖြစ်ဖြစ် ဟိုဒါ ဖြစ်ဖြစ်၊ တစ်ခုခု True ဖြစ်တာနဲ့ အဖြေက True ပဲ။ နှစ်ခုလုံး False ဖြစ်မှ False ဖြစ်မှာ။

or_operator.py
is_weekend = False is_holiday = True # ဒီနေ့ ရုံးပိတ်လား စစ်မယ် # (စနေ၊တနင်္ဂနွေ ဖြစ်ရမယ် ဒါမှမဟုတ် အစိုးရရုံးပိတ်ရက် ဖြစ်ရမယ်) is_off_day = is_weekend or is_holiday print(is_off_day) # Output: True (ဘာလို့လဲ? Weekend မဟုတ်ပေမယ့် (False), Holiday (True) ဖြစ်နေလို့)

or Operator Truth Table:

or_truth_table.py
print(True or True) # True print(True or False) # True print(False or True) # True print(False or False) # False

3. not (ပြောင်းပြန် လှန်တာ)

not ဆိုတာ အငြင်း။ သူက ပြောင်းပြန် လှန်တယ်။ True ကို False ဖြစ်အောင်၊ False ကို True ဖြစ်အောင် လုပ်တယ်။

not_operator.py
is_raining = True print(f"မိုးရွာနေလား? : {is_raining}") # Output: မိုးရွာနေလား? : True print(f"မိုးမရွာဘူးလား? : {not is_raining}") # Output: မိုးမရွာဘူးလား? : False # not Operator အလုပ်လုပ်ပုံ print(not True) # False print(not False) # True

Boolean တွေကို ဘယ်မှာ အဓိက သုံးလဲ?

If Statements (ဆုံးဖြတ်ချက် ချတဲ့ အပိုင်း) တွေမှာပေါ့။

Program တွေကတုံးတယ်။ ဒါဖြစ်ရင် ဒါလုပ်၊ ဟိုဒါဖြစ်ရင် ဟိုဒါလုပ် လို့ အတိအကျ ပြောပြမှရတာ။ အဲ့လို ဒါဖြစ်ရင် ဆိုတာကို Boolean နဲ့ စစ်ရတယ်။

အခြေခံ if statement:

basic_if.py
is_hungry = True # ဒါက Boolean variable if is_hungry == True: # (if is_hungry: လို့ ရေးလည်း တူတူ ပဲ) print("ထမင်းစားကွာ...") else: print("အေးဆေး... အလုပ်ဆက်လုပ်") # Output: "ထမင်းစားကွာ..."
Tip: အပေါ်က if နောက်က is_hungry ဆိုတာ Boolean True ဖြစ်နေလို့ ထမင်းစားကွာ... ဆိုတဲ့ အခြမ်း (block) ကို သွားတာ။ False ဆိုရင် else အခြမ်းကို တန်းသွားလိမ့်မယ်။

Practical Example 1: အသက် စစ်ဆေးတာ

age_check.py
age = int(input("အသက် ထည့်ပါ: ")) if age >= 18: print("ဘရို အရွယ်ရောက်ပြီ") print("မဲပေးခွင့် ရှိတယ်") else: print("ငယ်ရွယ်သေးတယ် ဘရို") print("မဲပေးခွင့် မရှိသေးဘူး")

Practical Example 2: Login စစ်ဆေးတာ

login_check.py
correct_username = "admin" correct_password = "1234" username = input("Username: ") password = input("Password: ") # and operator သုံးပြီး နှစ်ခုလုံး မှန် မမှန် စစ်တာ if username == correct_username and password == correct_password: print("Login ok") print("ကြိုဆိုပါတယ် ဘရို") else: print("Username သို့မဟုတ် Password မှားနေပါတယ်") print("Try again")

Practical Example 3: စာမေးပွဲ ရမှတ် စစ်တာ

exam_grade.py
score = int(input("ရမှတ် ထည့်ပါ (0-100): ")) # Multiple conditions စစ်တာ if score >= 90: print("Grade: A - အလန်း!") elif score >= 80: print("Grade: B - ကောင်းတယ်") elif score >= 70: print("Grade: C - အဆင်ပြေတယ်") elif score >= 60: print("Grade: D - Pass") else: print("Grade: F - Fail ဘရို 😂")

Practical Example 4: ဈေးဝယ် Discount စစ်တာ

discount_check.py
total_amount = float(input("စုစုပေါင်း ငွေ: ")) is_member = input("Member လား? (yes/no): ").lower() == "yes" discount = 0 # or operator သုံးတာ - Member ဖြစ်ဖြစ် ငွေ 50000 ကျော်ဖြစ်ဖြစ် if is_member or total_amount > 50000: discount = 10 print("ဘရို 10% Discount ရတယ်!") final_amount = total_amount - (total_amount * discount / 100) print(f"ပေးရမည့် ငွေ: {final_amount} ကျပ်")

Practical Example 5: အပူချိန် စစ်တာ

temperature_check.py
temperature = float(input("အပူချိန် (Celsius): ")) # Multiple logical operators တွဲသုံးတာ if temperature > 35: print("အရမ်း ပူတယ်") print("ရေ များများသောက်") elif temperature >= 25 and temperature <= 35: print("အပူချိန် သင့်တယ်") elif temperature >= 15 and temperature < 25: print("အေးပြီ") else: print("အေးလွန်းတယ်") print("အပူပေး ဝတ်စုံစွပ်")

Truthiness

Python မှာ အရမ်းဂေါ်တဲ့အချက်တစ်ချက် ရှိတယ်။ True နဲ့ False တိုက်ရိုက် မဟုတ်ဘဲ၊ တခြားကောင်တွေကိုလည်း True နဲ့ False သတ်မှတ်လို့ရတယ်။

False type တွေ:

falsy_values.py
# ဒီဒါတွေက False လို့ သတ်မှတ်တယ် print(bool(0)) # False (သုည) print(bool(0.0)) # False (ဒသမ သုည) print(bool("")) # False (Empty String) print(bool([])) # False (Empty List) print(bool({})) # False (Empty Dictionary) print(bool(None)) # False (None)

True Type တွေ:

truthy_values.py
# အပေါ်က ၆ ကောင်ကလွဲရင် ကျန်တာ အကုန် True ပဲ print(bool(10)) # True (int) print(bool(-5)) # True (negative int) print(bool("Hello")) # True (စာပါတဲ့ String) print(bool([1, 2])) # True (Data ပါတဲ့ List) print(bool({"a": 1})) # True (Data ပါတဲ့ Dictionary)

Practical မှာ သုံးတာ:

truthiness_practical.py
my_name = "" # Empty String (ဒါ False လို့ Python က သတ်မှတ်တယ်) if my_name: # (my_name က True လားလို့ စစ်တာ) print(f"မင်္ဂလာပါ {my_name}") else: print("နာမည်ထည့်ဦး") # Output: "နာမည်ထည့်ဦး" (ဘာလို့? my_name က "" (empty) ဖြစ်နေလို့ False ဖြစ်သွားတယ်) # နောက်ထပ် ဥပမာ - List စစ်တာ shopping_list = [] if shopping_list: print("ဝယ်စရာ ရှိတယ်") else: print("ဝယ်စရာ မရှိဘူး") # Output: "ဝယ်စရာ မရှိဘူး"
Truthiness: if my_name != "" လို့ ရှည်ရှည်ဝေးဝေး ရေးစရာမလိုတော့ဘူး။ if my_name: လို့စစ်လိုက်ရုံပဲ။ ရှင်းသွားရော။

Truthiness နဲ့ Number စစ်တာ:

truthiness_numbers.py
# 0 က False, ကျန်တာ True score = 0 if score: print(f"ရမှတ်: {score}") else: print("ရမှတ် မရသေးဘူး") # Output: "ရမှတ် မရသေးဘူး" # Practical: User input စစ်တာ user_input = input("တစ်ခုခု ရိုက်ပါ: ") if user_input: # ဘာမှ မရိုက်ရင် "" (empty) ဖြစ်ပြီး False print(f"ဘရို ရိုက်ထားတာ: {user_input}") else: print("ဘာမှ မရိုက်ဘူး")
သတိထားရမယ့် အချက်: Truthiness က အရမ်း အဆင်ပြေပေမယ့်၊ တစ်ခါတစ်လေ ရှင်းရှင်းလင်းလင်း ရေးသင့်တဲ့ နေရာမျိုးမှာ အသုံးပြုရင် code က ရှုပ်ထွေးသွားနိုင်တယ်။ if score != 0: လို့ ရှင်းရှင်းလင်းလင်း ရေးတာက တစ်ခါတစ်လေ ပိုကောင်းတယ်။