របៀបសរសេរសាខាតាមលក្ខខណ្ឌជាមួយ if statements ក្នុង Python

អាជីវកម្ម

ពន្យល់ពីការបែងចែកតាមលក្ខខណ្ឌជាមួយ 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 និង y មិនស្មើគ្នាx is yពិត ប្រសិនបើ x និង y ជាវត្ថុតែមួយx is not yពិត ប្រសិនបើ x និង y មិនមែនជាវត្ថុតែមួយx in yពិតប្រសិនបើ x មាននៅក្នុង yx not in yពិត ប្រសិនបើ x មិនមាននៅក្នុង 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 វត្ថុខាងក្រោមត្រូវបានចាត់ទុកថាមិនពិត។

លេខដែលតំណាងឱ្យសូន្យ ខ្សែទទេ បញ្ជី។ល។ត្រូវបានចាត់ទុកថាមិនពិត។ ផ្សេងទៀតទាំងអស់ត្រូវបានចាត់ទុកថាជាការពិត។

របៀបដែលវត្ថុត្រូវបានវិនិច្ឆ័យអាចត្រូវបានពិនិត្យដោយ 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 xfalse ប្រសិនបើ 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 ប៉ុណ្ណោះទេ។

Copied title and URL