ពន្យល់ពីការបែងចែកតាមលក្ខខណ្ឌជាមួយ if statements នៅក្នុង Python។
- មូលដ្ឋានគ្រឹះនៃ if statements (if, elif, else)
- បញ្ជាក់លក្ខខណ្ឌជាមួយប្រតិបត្តិករប្រៀបធៀប។ល។
- បញ្ជាក់លក្ខខណ្ឌតាមលេខ បញ្ជី។ល។
- បញ្ជាក់លក្ខខណ្ឌជាច្រើន ឬការអវិជ្ជមានជាមួយប្រតិបត្តិករឡូជីខល (និង ឬមិនមែន)
- កន្សោមតាមលក្ខខណ្ឌលើបន្ទាត់ថ្មី និងបន្ទាត់ច្រើន។
វាក៏មានប្រតិបត្តិករ ternary ដែលពិពណ៌នាអំពីសាខាតាមលក្ខខណ្ឌក្នុងបន្ទាត់មួយ។ សូមមើលអត្ថបទខាងក្រោម។
មូលដ្ឋានគ្រឹះនៃ if statements (if, elif, else)
ទម្រង់មូលដ្ឋាននៃ if statement មានដូចខាងក្រោម
if Conditional expression 1:
`Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
`Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
`Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
`Processing when all conditionals are false.`
“elif” ត្រូវគ្នាទៅនឹង “else if” នៅក្នុង C និងភាសាផ្សេងទៀត ហើយប្រហែលជាមាន “elifs” មួយចំនួន។
ប្រសិនបើមានកន្សោមតាមលក្ខខណ្ឌតែមួយ ឬដំណើរការនៅពេលមិនពិត នោះប្លុក “elif” និង “else” អាចត្រូវបានលុបចោល។
បញ្ជាក់លក្ខខណ្ឌជាមួយប្រតិបត្តិករប្រៀបធៀប។ល។
បញ្ជាក់លក្ខខណ្ឌជាមួយនឹងប្រតិបត្តិការដែលត្រឡប់ប្រភេទប៊ូល (ពិត មិនពិត) ដូចជាប្រតិបត្តិករប្រៀបធៀប។
ប្រតិបត្តិករប្រៀបធៀប Python មានដូចខាងក្រោម
ប្រតិបត្តិករ | លទ្ធផល |
---|---|
x < y | ពិតប្រសិនបើ x តិចជាង y |
x <= y | ពិត ប្រសិនបើ x តិចជាង ឬស្មើនឹង y |
x > y | ពិតប្រសិនបើ x ធំជាង y |
x >= y | ពិត ប្រសិនបើ x ធំជាង ឬស្មើ y |
x == y | ពិតប្រសិនបើតម្លៃ x និង y ស្មើគ្នា |
x != y
x is y
x is not y
x in y
x not in y
ឧទាហរណ៍។ ដើម្បីភាពងាយស្រួល វាត្រូវបានកំណត់ថាជាមុខងារមួយជាមួយនឹង def statement ។
def if_test(num):
if num > 100:
print('100 < num')
elif num > 50:
print('50 < num <= 100')
elif num > 0:
print('0 < num <= 50')
elif num == 0:
print('num == 0')
else:
print('num < 0')
if_test(1000)
# 100 < num
if_test(70)
# 50 < num <= 100
if_test(0)
# num == 0
if_test(-100)
# num < 0
ខាងក្រោមនេះអាចត្រូវបានសរសេរតាមរបៀបដែលប្លែកពី Python ។ សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។a < x < b
def if_test2(num):
if 50 < num < 100:
print('50 < num < 100')
else:
print('num <= 50 or num >= 100')
if_test2(70)
# 50 < num < 100
if_test2(0)
# num <= 50 or num >= 100
#ERROR!
!=
ខាងលើគឺជាការប្រៀបធៀបតម្លៃ; ដើម្បីប្រៀបធៀបអត្តសញ្ញាណវត្ថុ សូមប្រើដូចខាងក្រោម
is
is not
ឧទាហរណ៍ នៅពេលប្រៀបធៀបចំនួនគត់ និងលេខអណ្តែតទឹក “==” ត្រឡប់ពិត ប្រសិនបើតម្លៃសមមូល ប៉ុន្តែ “គឺ” ត្រឡប់មិនពិត ព្រោះវាជាវត្ថុផ្សេងគ្នា។
i = 10
print(type(i))
# <class 'int'>
f = 10.0
print(type(f))
# <class 'float'>
print(i == f)
# True
print(i is f)
# False
វាក៏អាចធ្វើទៅបានផងដែរដើម្បីធ្វើឱ្យលក្ខខណ្ឌថាតើបញ្ជីឬខ្សែអក្សរមានធាតុជាក់លាក់មួយ (តួអក្សរ) ។
in
:រួមបញ្ចូលnot in
:មិនរួមបញ្ចូល
def if_test_in(s):
if 'a' in s:
print('a is in string')
else:
print('a is NOT in string')
if_test_in('apple')
# a is in string
if_test_in('melon')
# a is NOT in string
បញ្ជាក់លក្ខខណ្ឌតាមលេខ បញ្ជី។ល។
កន្សោមតាមលក្ខខណ្ឌនៃសេចក្តីថ្លែងការណ៍ if អាចជាលេខ បញ្ជី ឬវត្ថុផ្សេងទៀតដែលមិនមែនជាប្រភេទប៊ូល (ពិត មិនពិត)។
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
នៅក្នុងកន្សោមតាមលក្ខខណ្ឌនៃ Python if statement វត្ថុខាងក្រោមត្រូវបានចាត់ទុកថាមិនពិត។
- ថេរកំណត់ថាមិនពិត:
None
,false
- សូន្យក្នុងប្រភេទលេខ:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- លំដាប់ទទេ ឬការប្រមូល:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
លេខដែលតំណាងឱ្យសូន្យ ខ្សែទទេ បញ្ជី។ល។ត្រូវបានចាត់ទុកថាមិនពិត។ ផ្សេងទៀតទាំងអស់ត្រូវបានចាត់ទុកថាជាការពិត។
របៀបដែលវត្ថុត្រូវបានវិនិច្ឆ័យអាចត្រូវបានពិនិត្យដោយ bool() ។
print(bool(10))
# True
print(bool(0.0))
# False
print(bool([]))
# False
print(bool('False'))
# True
វាអាចត្រូវបានប្រើដើម្បីសរសេរដំណើរការនៅពេលដែលបញ្ជីទទេ។
def if_test_list(l):
if l:
print('list is NOT empty')
else:
print('list is empty')
if_test_list([0, 1, 2])
# list is NOT empty
if_test_list([])
# list is empty
សូមចំណាំថា ខ្សែអក្សរ ‘False’ ក៏នឹងជាការពិតដែរ ពីព្រោះដូចបានបង្ហាញក្នុងឧទាហរណ៍ខាងលើ ខ្សែអក្សរណាមួយដែលមិនទទេនៅក្នុងខ្សែអក្សរនឹងជាការពិត។’ ដើម្បីបំប្លែងខ្សែអក្សរជាក់លាក់ដូចជា ‘True’ ឬ ‘False’ ទៅជា 1,0 សូមប្រើ strtobool() នៅក្នុងម៉ូឌុល distutils.util។
បញ្ជាក់លក្ខខណ្ឌជាច្រើន ឬការអវិជ្ជមានជាមួយប្រតិបត្តិករឡូជីខល (និង ឬមិនមែន)
ប្រតិបត្តិករតក្កវិជ្ជា (និង ឬមិនមែន) អាចត្រូវបានប្រើដើម្បីដោះស្រាយការភ្ជាប់តក្កវិជ្ជា ការផ្តាច់តក្កវិជ្ជា និងការបដិសេធនៃលក្ខខណ្ឌជាច្រើន។
ប្រតិបត្តិករ | (លទ្ធផល (នៅក្នុងកន្សោមតាមលក្ខខណ្ឌនៃសេចក្តីថ្លែងការណ៍ if) |
---|---|
x and y | ពិត ប្រសិនបើ x និង y គឺពិត |
x or y | ពិត ប្រសិនបើ x ឬ y គឺពិត |
not x | false ប្រសិនបើ x គឺពិត ពិត ប្រសិនបើ x មិនពិត |
def if_test_and_not(num):
if num >= 0 and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_not(5)
# num is positive odd
if_test_and_not(10)
# num is NOT positive odd
if_test_and_not(-10)
# num is NOT positive odd
តាមពិត “x និង y” និង “x ឬ y” មិនត្រឡប់ True ឬ False ទេ ប៉ុន្តែទាំង x ឬ y ។ ដរាបណាពួកវាត្រូវបានប្រើនៅក្នុងកន្សោមតាមលក្ខខណ្ឌក្នុង if statements នោះមិនចាំបាច់ព្រួយបារម្ភអំពីពួកវាទេ ព្រោះពួកវាវាយតម្លៃថាពិតឬមិនពិត។ សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។
វាអាចទៅរួចក្នុងការប្រើប្រាស់ និង ឬច្រើនជាងម្តង។
def if_test_and_not_or(num):
if num >= 0 and not num % 2 == 0 or num == -10:
print('num is positive odd or -10')
else:
print('num is NOT positive odd or -10')
if_test_and_not_or(5)
# num is positive odd or -10
if_test_and_not_or(10)
# num is NOT positive odd or -10
if_test_and_not_or(-10)
# num is positive odd or -10
កន្សោមតាមលក្ខខណ្ឌលើបន្ទាត់ថ្មី និងបន្ទាត់ច្រើន។
នៅពេលដែលកន្សោមតាមលក្ខខណ្ឌច្រើនត្រូវបានប្រើដោយភ្ជាប់ពួកវាជាមួយ “និង” ឬ “ឬ” ហើយបន្ទាត់នីមួយៗក្លាយជាវែង ជួនកាលវាចាំបាច់ដើម្បីបំបែកកន្សោមតាមលក្ខខណ្ឌ ហើយសរសេរវានៅលើបន្ទាត់ច្រើន។
ការបំបែកបន្ទាត់អាចត្រូវបានធ្វើឡើងដោយប្រើសញ្ញាថយក្រោយ ឬដោយការបិទបន្ទាត់ទាំងមូលក្នុងវង់ក្រចក។
def if_test_and_backslash(num):
if num >= 0 \
and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_backslash(5)
# num is positive odd
def if_test_and_brackets(num):
if (num >= 0
and not num % 2 == 0):
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_brackets(5)
# num is positive odd
អ្នកអាចប្រើ backslash ដើម្បីបំបែកបន្ទាត់ជាច្រើនដងតាមដែលអ្នកចូលចិត្ត។ ដូចគ្នាដែរ អ្នកអាចបំបែកបន្ទាត់មួយចំនួនដងក្នុងវង់ក្រចក។ មិនមានដែនកំណត់ការចូលបន្ទាត់ទេ។
ចំណាំថានេះគឺជាបច្ចេកទេសដែលអាចប្រើបានគ្រប់ទីកន្លែងនៅក្នុងកូដ Python មិនត្រឹមតែនៅក្នុង if statements ប៉ុណ្ណោះទេ។