ប្រតិបត្តិករឡូជីខលរបស់ Python និង ឬ និងមិនមែន (ការភ្ជាប់ឡូជីខល ការបំបែក ការបដិសេធ)

អាជីវកម្ម

Python ផ្តល់​នូវ​ប្រតិបត្តិករ​ឡូជីខល​ដើម្បី​អនុវត្ត​ប្រតិបត្តិការ​ឡូជីខល (Boolean)។(and,or,not)
វា​ត្រូវ​បាន​ប្រើ​ដើម្បី​ពណ៌នា​អំពី​ទំនាក់ទំនង​រវាង​លក្ខខណ្ឌ​ច្រើន​ក្នុង​សេចក្តី​ថ្លែងការណ៍ if។

ផ្នែកនេះពិពណ៌នាដូចខាងក្រោម។

  • ប្រសព្វ:and
  • បន្ថែមឡូជីខល:or
  • ការបដិសេធ:not
  • and,or,notអាទិភាពប្រតិបត្តិករ

លើសពីនេះទៀតចំណុចខាងក្រោមត្រូវបានពន្យល់ជាការប្រុងប្រយ័ត្ន។

  • ប្រតិបត្តិករឡូជីខលសម្រាប់វត្ថុនៃប្រភេទក្រៅពីប៊ូល។
  • and,orតម្លៃ​ត្រឡប់​ទាំងនេះ​មិន​ចាំបាច់​ជា​ប្រភេទ bool ទេ។
  • សៀគ្វីខ្លី (ការវាយតម្លៃសៀគ្វីខ្លី)

ប្រសព្វ: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

បន្ថែមឡូជីខល: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 ។

ប្រតិបត្តិករឡូជីខលសម្រាប់វត្ថុនៃប្រភេទក្រៅពីប៊ូល។

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

វត្ថុខាងក្រោមត្រូវបានចាត់ទុកថាមិនពិតនៅក្នុងប្រតិបត្តិការឡូជីខលរបស់ Python ។

  • ថេរកំណត់ថាមិនពិត:None,false
  • សូន្យនៅក្នុងប្រភេទលេខ:0,0,0j,Decimal(0),Fraction(0, 1)
  • លំដាប់​ទទេ ឬ​ការ​ប្រមូល:',(),[],{},set(),range(0)

តម្លៃផ្សេងទៀតទាំងអស់ត្រូវបានចាត់ទុកថាជាការពិត។

function bool() អាចត្រូវបានប្រើដើម្បីទទួលបានតម្លៃ boolean នៃ object មួយ។ ចំណាំថាខ្សែអក្សរ ‘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’ នៅក្នុងខ្សែអក្សរថាមិនពិត សូមប្រើ distutils.util.strtobool()។

and,orតម្លៃ​ត្រឡប់​ទាំងនេះ​មិន​ចាំបាច់​ជា​ប្រភេទ bool ទេ។

នេះ​ជា​ឧទាហរណ៍​នៃ​វត្ថុ​ផ្សេង​ពី​ប្រភេទ​ប៊ូល ដែល​បង្ហាញ​លទ្ធផល​នៃ​ប្រតិបត្តិករ​នីមួយៗ​លើ​តម្លៃ​ជា​លេខ។

x = 10  # True
y = 0  # False

print(x and y)
# 0

print(x or y)
# 10

print(not x)
# False

ដូចដែលអ្នកអាចឃើញពីឧទាហរណ៍ខាងលើ និង និង ឬនៅក្នុង Python មិនត្រឡប់ពិតឬមិនពិតនៃប្រភេទ 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 ជាដើម។ លទ្ធផលត្រូវបានវិនិច្ឆ័យថាជាតម្លៃប៊ូលីន និងដំណើរការ ដូច្នេះអ្នកមិនចាំបាច់ព្រួយបារម្ភអំពីវាទេ ប៉ុន្តែប្រសិនបើអ្នកប្រើតម្លៃត្រឡប់សម្រាប់ដំណើរការបន្ថែម អ្នក ចាំបាច់ត្រូវប្រុងប្រយ័ត្ន។

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

សៀគ្វីខ្លី (ការវាយតម្លៃសៀគ្វីខ្លី)

ដូចដែលអ្នកអាចឃើញពីតារាងខាងលើ ប្រសិនបើ x មិនពិតក្នុង x និង y ឬប្រសិនបើ x ពិតក្នុង x ឬ y តម្លៃត្រឡប់នឹង x ដោយមិនគិតពីតម្លៃ y ។

ក្នុងករណីបែបនេះ y មិនត្រូវបានគេវាយតម្លៃទេ។

and,orចំណាំថា ប្រសិនបើអ្នកហៅមុខងារ ឬវិធីសាស្ត្រនៅជ្រុងខាងស្តាំនៃដំណើរការទាំងនេះ ដើម្បីដំណើរការមួយចំនួន ដំណើរការអាចនឹងមិនត្រូវបានអនុវត្តទេ អាស្រ័យលើលទ្ធផលនៅផ្នែកខាងឆ្វេង។

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