Python ၏ ယုတ္တိရှိသော အော်ပရေတာများနှင့် သို့မဟုတ် မဟုတ်ဘဲ (ယုတ္တိဆက်စပ်မှု၊ ကွဲလွဲမှု၊ နှုတ်ထွက်မှု)

စီးပွားရေးလုပ်ငန်း

ယုတ္တိဗေဒ (Boolean) လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် Python သည် ယုတ္တိရှိသော အော်ပရေတာများကို ပံ့ပိုးပေးသည်။(andornot)
if statement တစ်ခုတွင် အခြေအနေများစွာကြားရှိ ဆက်စပ်မှုကို ဖော်ပြရန် ၎င်းကို အသုံးပြုသည်။

ဤကဏ္ဍတွင် အောက်ပါတို့ကို ဖော်ပြထားသည်။

  • လမ်းဆုံ:and
  • logical add:or
  • ငြင်းဆိုခြင်း။:not
  • andornotအော်ပရေတာ ဦးစားပေး

ထို့အပြင် အောက်ဖော်ပြပါ အချက်များကို သတိထားရန်လည်း ရှင်းပြထားပါသည်။

  • bool မှလွဲ၍ အခြားအမျိုးအစားအရာဝတ္ထုများအတွက် ယုတ္တိအော်ပရေတာများ
  • andorဤပြန်ပေးတန်ဖိုးများသည် အမျိုးအစား bool ၏ မလိုအပ်ပါ။
  • ဝါယာရှော့ (short circuit evaluation)၊

လမ်းဆုံ:and

တန်ဖိုးနှစ်ခု၏ ယုတ္တိဗေဒ ထုတ်ကုန်ကို ပြန်ပေးသည်။

print(True and True)
# True

print(True and False)
# False

print(False and True)
# False

print(False and False)
# False

အမှန်မှာ၊ ၎င်းကို မှန်သည် သို့မဟုတ် အမှားအတွက်မဟုတ်ဘဲ နှိုင်းယှဉ်အော်ပရေတာများကို အသုံးပြုသည့် အခြေအနေဆိုင်ရာဖော်ပြချက်များအတွက် မကြာခဏအသုံးပြုသည်။ သင့်အချက်အလက်များအတွက်၊ နှိုင်းယှဉ်အော်ပရေတာများမှာ အောက်ပါအတိုင်းဖြစ်သည်။

  • <
  • >
a = 10
print(0 < a)
# True

print(a < 100)
# True

print(0 < a and a < 100)
# True

အောက်ပါအတိုင်း ပေါင်းစပ်နိုင်ပါသည်။

print(0 < a < 100)
# True

logical add:or

သို့မဟုတ် တန်ဖိုးနှစ်ခု၏ ယုတ္တိ OR ကို ပြန်ပေးသည်။

print(True or True)
# True

print(True or False)
# True

print(False or True)
# True

print(False or False)
# False

ငြင်းဆိုခြင်း။:not

not” သည် တန်ဖိုး၏ နှုတ်ထွက်မှုကို ပြန်ပေးသည်၊ အမှန်နှင့် အမှားသည် ပြောင်းပြန်ဖြစ်သည်။

print(not True)
# False

print(not False)
# True

and၊or၊notအော်ပရေတာ ဦးစားပေး

ဤယုတ္တိတန်သောအော်ပရေတာများ၏ ရှေ့တန်းအစီအစဥ်မှာ အောက်ပါအတိုင်းဖြစ်သည်- အမြင့်ဆုံးမဟုတ်ပေ။

  1. not
  2. and
  3. or

အောက်ပါနမူနာကုဒ်တွင်၊ အထက်ဖော်ပြပါအချက်များကို အောက်ပါအတိုင်း အဓိပ္ပာယ်ဖွင့်ဆိုထားပါသည်။ အပိုကွင်းစဥ်များတွင် ပြဿနာမရှိသောကြောင့်၊ ဤဥပမာကဲ့သို့သော ကိစ္စများတွင် ၎င်းတို့ကို ရှင်းလင်းစွာဖော်ပြရန် ပိုမိုလွယ်ကူနိုင်သည်။

print(True or True and False)
# True

print(True or (True and False))
# True

လည်ပတ်လိုပါက သို့မဟုတ် ရှေ့တွင် ကွင်းကွင်း() ကို အသုံးပြုပါ။

print((True or True) and False)
# False

<>ဤနှိုင်းယှဉ်မှုအော်ပရေတာများသည် မရှိသည်ထက် ပို၍မြင့်မားသည်။ ထို့ကြောင့် အထက်ဖော်ပြပါ ဥပမာတွင်ကဲ့သို့ နှိုင်းယှဉ်မှုတစ်ခုစီအတွက် ကွင်းစဥ်များမလိုအပ်ပါ။

print(0 < a and a < 100)
# True

Python ရှိ အော်ပရေတာ ဦးစားပေး အကျဉ်းချုပ်အတွက် အောက်ပါတရားဝင်စာရွက်စာတမ်းကို ကြည့်ပါ။

bool မှလွဲ၍ အခြားအမျိုးအစားအရာဝတ္ထုများအတွက် ယုတ္တိအော်ပရေတာများ

With these logical operators, not only bool types (true, false), but also numbers, strings, lists, etc. are processed as boolean values.

အောက်ပါအရာဝတ္ထုများကို Python ၏ယုတ္တိကျသောလုပ်ဆောင်မှုများတွင် မှားယွင်းသည်ဟုယူဆပါသည်။

  • ကိန်းသေများကို မှားသည်ဟု သတ်မှတ်သည်။:Nonefalse
  • ဂဏန်းအမျိုးအစားများတွင် သုည:000jDecimal(0)Fraction(0, 1)
  • ဗလာအစီအစဥ် သို့မဟုတ် စုစည်းမှု:'()[]{}set()range(0)

အခြားတန်ဖိုးများအားလုံးကို မှန်သည်ဟု ယူဆပါသည်။

အရာဝတ္ထုတစ်ခု၏ boolean တန်ဖိုးကို ရယူရန် function bool() ကို အသုံးပြုနိုင်သည်။ ‘0’ သို့မဟုတ် ‘False’ ဟူသော စာကြောင်းကို မှန်သည်ဟု မှတ်ယူပါ။

print(bool(10))
# True

print(bool(0))
# False

print(bool(''))
# False

print(bool('0'))
# True

print(bool('False'))
# True

print(bool([]))
# False

print(bool([False]))
# True

0′ သို့မဟုတ် ‘false’ ကို false အဖြစ် စာကြောင်းတစ်ခုတွင် ကိုင်တွယ်ရန် distutils.util.strtobool() ကို အသုံးပြုပါ။

and၊orဤပြန်ပေးတန်ဖိုးများသည် အမျိုးအစား bool ၏ မလိုအပ်ပါ။

ဤသည်မှာ bool အမျိုးအစားမှလွဲ၍ အခြားအရာဝတ္ထုတစ်ခု၏ ဥပမာတစ်ခုဖြစ်ပြီး ကိန်းဂဏာန်းတန်ဖိုးတစ်ခုပေါ်တွင် အော်ပရေတာတစ်ခုစီ၏ရလဒ်ကိုပြသသည်။

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

အထက်ဖော်ပြပါ ဥပမာမှ သင်တွေ့မြင်ရသည့်အတိုင်း၊ နှင့် သို့မဟုတ် Python တွင် bool အမျိုးအစား bool ၏ true သို့မဟုတ် false မပြန်ပါသော်လည်း မှန်သည်ဖြစ်စေ၊ မှားသည်ဖြစ်စေ အပေါ်မူတည်၍ ဘယ်ဘက် သို့မဟုတ် ညာဘက်တွင် တန်ဖိုးကို ပြန်ပေးသည်။ ဥပမာသည် ကိန်းဂဏာန်းဖြစ်သော်လည်း strings နှင့် lists ကဲ့သို့သော အခြားအမျိုးအစားများနှင့် တူညီသည်။ ဗြုန်းဆို၊ အမျိုးအစား bool ၏ အစစ်အမှန် သို့မဟုတ် အမှားကို ပြန်မပေးပါ။

နှင့် သို့မဟုတ် သို့မဟုတ် ပြန်လာတန်ဖိုးများ၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်များမှာ အောက်ပါအတိုင်းဖြစ်သည်။

The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.

The expression x or y first evaluates x; if x is true, its value is returned; otherwise, y is evaluated and the resulting value is returned.

6.11. Boolean operations — Expressions — Python 3.10.1 Documentation

ဘယ်နှင့်ညာအသုံးအနှုန်းများ၏တန်ဖိုးများသည် အစစ်အမှန်နှင့် လွဲမှားခြင်း သီးခြားစီဖြစ်နေသောအခါ၊ ပြန်တန်ဖိုးများသည် နားလည်ရလွယ်ကူပါသည်။ အခြားတစ်ဖက်တွင်၊ နှစ်ခုလုံးသည် မှန်သည် သို့မဟုတ် နှစ်ခုလုံးသည် မှားပါက၊ ပြန်ပို့သည့်တန်ဖိုးသည် အမှာစာပေါ်မူတည်၍ ကွဲပြားမည်ဖြစ်သည်။

if Statement စသည်တို့တွင် ၎င်းကို conditional expression အဖြစ်အသုံးပြုပါက၊ ရလဒ်အား boolean တန်ဖိုးအဖြစ် သတ်မှတ်ပြီး စီမံဆောင်ရွက်ထားသောကြောင့် ၎င်းအတွက် သင်စိုးရိမ်နေရန် မလိုအပ်ပါ၊ သို့သော် ထပ်မံလုပ်ဆောင်ရန်အတွက် ပြန်ပို့တန်ဖိုးကို သင်အသုံးပြုပါက၊ သတိထားဖို့ လိုပါတယ်။

x = 10  # True
y = 100  # True

print(x and y)
# 100

print(y and x)
# 10

print(x or y)
# 10

print(y or x)
# 100
x = 0  # False
y = 0.0  # False

print(x and y)
# 0

print(y and x)
# 0.0

print(x or y)
# 0.0

print(y or x)
# 0

print(bool(x and y))
# False

မှန်သည်ဖြစ်စေ မှားသည်ဖြစ်စေ သဘောထားလိုပါက၊ နောက်ဆုံးဥပမာတွင်ကဲ့သို့ လုပ်ဆောင်နိုင်သည်။
bool(x and y)

နှင့် နှင့် သို့မဟုတ် ပြန်ပေးတန်ဖိုးများကို အောက်ပါဇယားတွင် အကျဉ်းချုံးထားသည်။

xyx and yx or y
truefalseyx
falsetruexy
truetrueyx
falsefalsexy

ဝါယာရှော့ (short circuit evaluation)၊

အပေါ်ကဇယားမှာတွေ့မြင်ရတဲ့အတိုင်း x က x နဲ့ y မှာ မှားရင် ဒါမှမဟုတ် x က x ဒါမှမဟုတ် y ဆိုရင် ပြန်တန်ဖိုးက y ရဲ့တန်ဖိုးက x ဖြစ်သွားမှာပါ။

ဒီလိုအခြေအနေမျိုးမှာ y ကို အကဲဖြတ်မှာ မဟုတ်ပါဘူး။

andorလုပ်ငန်းစဉ်အချို့လုပ်ဆောင်ရန် ဤလုပ်ငန်းစဉ်များ၏ ညာဘက်ခြမ်းရှိ လုပ်ဆောင်ချက် သို့မဟုတ် နည်းလမ်းတစ်ခုကို သင်ခေါ်ဆိုပါက၊ ဘယ်ဘက်ခြမ်းရှိ ရလဒ်ပေါ်မူတည်၍ လုပ်ငန်းစဉ်ကို လုပ်ဆောင်မည်မဟုတ်ကြောင်း သတိပြုပါ။

def test():
    print('function is called')
    return True

print(True and test())
# function is called
# True

print(False and test())
# False

print(True or test())
# True

print(False or test())
# function is called
# True