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» және «else» блоктарын алып тастауға болады.

Салыстыру операторларымен шарттарды көрсетіңіз және т.б.

Салыстыру операторы сияқты bool түрін (шын, жалған) қайтаратын операциямен шартты көрсетіңіз.

Python салыстыру операторлары келесідей

операторнәтиже
x < yдұрыс, егер x у-дан кіші болса
x <= yшын, егер х у-дан кіші немесе тең болса
x > yдұрыс, егер х у-дан үлкен болса
x >= yшын, егер х у-дан үлкен немесе оған тең болса
x == yшын, егер x пен у мәндері тең болса
x != yшын, егер x пен у мәндері тең болмасаx is yшын, егер x пен у бірдей нысан болсаx is not yшын, егер x пен у бірдей нысан болмасаx in yақиқат, егер х у құрамында болсаx not in yшын, егер х у құрамында болмаса

Мысал. Ыңғайлы болу үшін ол 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

Мысалы, бүтін сан мен өзгермелі нүктелі санды салыстыру кезінде мәндер баламалы болса, «==» ақиқат мәнін қайтарады, бірақ «is» жалған мәнін қайтарады, себебі олар әртүрлі нысандар.

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» жолы да ақиқат болатынын ескеріңіз, себебі жоғарыдағы мысалда көрсетілгендей, жолда бос емес кез келген жол ақиқат болады.’ «True» немесе «False» сияқты белгілі бір жолды 1,0 мәніне түрлендіру үшін distutils.util модулінде strtobool() пайдаланыңыз.

Логикалық операторлармен бірнеше шарттарды немесе терістеулерді көрсетіңіз (және, немесе, жоқ)

Логикалық операторлар (және, немесе, емес) логикалық конъюнкцияны, логикалық дизъюнкцияны және бірнеше шарттарды теріске шығаруды өңдеу үшін пайдаланылуы мүмкін.

оператор(Нәтиже (if операторының шартты өрнегі)
x and yшын, егер x пен у екеуі де ақиқат болса
x or yшын, егер x немесе у шын болса
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

Шындығында, «x және y» және «x немесе y» True немесе False мәнін қайтармайды, бірақ х немесе у. Олар if операторларында шартты өрнектерде қолданылғанша, олар туралы алаңдаудың қажеті жоқ, өйткені олар True немесе False деп бағалайды. Мәліметтер алу үшін келесі мақаланы қараңыз.

Оны және және немесе бірнеше рет қолдануға болады.

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

Кері қиғаш сызықты қалағаныңызша бірнеше рет үзу үшін пайдалануға болады. Сол сияқты, жолды жақша ішінде кез келген рет үзуге болады. Шегініс шегі жоқ.

Бұл if операторларында ғана емес, Python кодының кез келген жерінде қолдануға болатын әдіс екенін ескеріңіз.

Copied title and URL