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អាទិភាពប្រតិបត្តិករ
លំដាប់នៃអាទិភាពនៃប្រតិបត្តិករឡូជីខលទាំងនេះមានដូចខាងក្រោម: មិនមែនខ្ពស់បំផុតទេ។
not
and
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)
តម្លៃត្រឡប់នៃ និង និង ឬត្រូវបានសង្ខេបនៅក្នុងតារាងខាងក្រោម។
x | y | x and y | x or y |
---|---|---|---|
true | false | y | x |
false | true | x | y |
true | true | y | x |
false | false | x | y |
សៀគ្វីខ្លី (ការវាយតម្លៃសៀគ្វីខ្លី)
ដូចដែលអ្នកអាចឃើញពីតារាងខាងលើ ប្រសិនបើ 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