Python дээр if хэллэгээр нөхцөлт салбаруудыг хэрхэн бичих вэ

Бизнес эрхэлдэг

Python хэл дээрх if хэллэгүүдээр нөхцөлт салаалсан байдлыг тайлбарла.

  • if мэдэгдлийн үндэс (if, elif, else)
  • Харьцуулах операторууд гэх мэт нөхцөлүүдийг зааж өгнө үү.
  • Нөхцөлийг тоо, жагсаалт гэх мэтээр зааж өгнө үү.
  • Логик операторуудтай олон нөхцөл эсвэл үгүйсгэлийг зааж өгөх (ба, эсвэл, үгүй)
  • Шинэ мөр болон олон мөрөнд нөхцөлт илэрхийллүүд

Мөн нэг мөрөнд нөхцөлт салбарыг дүрсэлсэн гуравдагч оператор байдаг. Дараах нийтлэлийг үзнэ үү.

if мэдэгдлийн үндэс (if, elif, else)

if мэдэгдлийн үндсэн хэлбэр нь дараах байдалтай байна

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”-тэй тохирч, хэдэн ч “elif” байж болно.

Хэрэв худал шаардлагагүй үед зөвхөн нэг нөхцөлт илэрхийлэл эсвэл боловсруулалт байгаа бол “elif” болон “else” блокуудыг орхиж болно.

Харьцуулах операторууд гэх мэт нөхцөлүүдийг зааж өгнө үү.

Харьцуулах оператор гэх мэт bool төрлийг (үнэн, худал) буцаадаг үйлдлээр нөхцөлийг зааж өгнө үү.

Python харьцуулах операторууд дараах байдалтай байна

операторүр дүн
x < yхэрэв x нь у-аас бага бол үнэн
x <= yхэрэв x нь у-аас бага эсвэл тэнцүү бол үнэн
x > yхэрэв x нь у-аас их бол үнэн
x >= yхэрэв x нь у-аас их эсвэл тэнцүү бол үнэн
x == yx ба у утгууд тэнцүү бол үнэн
x != yx ба у утгууд тэнцүү биш бол үнэнx is yхэрэв x ба y нь ижил объект бол үнэнx is not yхэрэв x ба y нь ижил объект биш бол үнэнx in yхэрэв x нь у-д агуулагдаж байвал үнэнx not in yХэрэв x нь у-д агуулагдахгүй бол үнэн

Жишээ. Тохиромжтой болгох үүднээс үүнийг def мэдэгдэл бүхий функц гэж тодорхойлсон.

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

Жишээлбэл, бүхэл тоо болон хөвөгч цэгийг харьцуулахдаа “==&#8221; утга нь тэнцүү бол үнэн, харин өөр объект учраас “is&#8221; нь худал буцаана.

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 хэллэгийн нөхцөлт илэрхийлэл нь bool (үнэн, худал) төрлийн бус тоо, жагсаалт эсвэл бусад объект байж болно.

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

Python if хэллэгийн нөхцөлт илэрхийлэлд дараах объектуудыг худал гэж үзнэ.

Тэг, хоосон мөр, жагсаалт гэх мэтийг илэрхийлсэн тоонууд худал гэж тооцогддог; бусад нь үнэн гэж үздэг.

Объектыг хэрхэн дүгнэж байгааг 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’ тэмдэгт мөр нь үнэн байх болно гэдгийг анхаарна уу.’ “Үнэн&#8221; эсвэл “Худал&#8221; гэх мэт тодорхой мөрийг 1,0 болгон хөрвүүлэхийн тулд distutils.util модулийн strtobool()-г ашиглана уу.

Логик операторуудтай олон нөхцөл эсвэл үгүйсгэлийг зааж өгөх (ба, эсвэл, үгүй)

Логик операторуудыг (ба, эсвэл, үгүй) логик холболт, логик салгах, олон нөхцөлийг үгүйсгэхэд ашиглаж болно.

оператор(Үр дүн (if мэдэгдлийн нөхцөлт илэрхийлэлд)
x and yx ба y хоёулаа үнэн бол үнэн
x or yx эсвэл y аль нэг нь үнэн бол үнэн
not xx үнэн бол худал, х худал бол үнэн
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

Үнэн хэрэгтээ “х ба у&#8221; ба “х эсвэл у&#8221; нь Үнэн эсвэл Худал гэж буцаадаггүй, харин x эсвэл у гэсэн утгыг өгдөг. Эдгээр нь if хэллэгт нөхцөлт илэрхийлэлд ашиглагдаж байгаа л бол Үнэн эсвэл Худал гэж үнэлдэг тул санаа зовох зүйлгүй. Дэлгэрэнгүйг дараах нийтлэлээс үзнэ үү.

Энэ нь болон ба эсвэл нэгээс олон удаа ашиглах боломжтой.

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

Шинэ мөр болон олон мөрөнд нөхцөлт илэрхийллүүд

Олон нөхцөлт хэллэгийг “ба&#8221; эсвэл “эсвэл&#8221;-ээр холбож, мөр бүр уртсах үед нөхцөлт илэрхийлэлийг эвдэж, олон мөрөнд бичих шаардлагатай болдог.

Буруу ташуу зураас эсвэл бүхэл бүтэн мөрийг хаалтанд хийж мөр таслах боломжтой.

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

Та урвуу зураасаар зураасыг хэдэн ч удаа таслах боломжтой. Үүний нэгэн адил та хаалт дотор хэдэн ч удаа мөр тасалж болно. Доголын хязгаарлалт байхгүй.

Энэ нь зөвхөн if хэллэгт бус Python кодын хаана ч ашиглах боломжтой техник гэдгийг анхаарна уу.

Copied title and URL