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 is y
x is not y
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 операторының шартты өрнекінде келесі нысандар жалған болып саналады.
- Жалған деп анықталған тұрақтылар:
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 мәніне түрлендіру үшін distutils.util модулінде strtobool() пайдаланыңыз.
Логикалық операторлармен бірнеше шарттарды немесе терістеулерді көрсетіңіз (және, немесе, жоқ)
Логикалық операторлар (және, немесе, емес) логикалық конъюнкцияны, логикалық дизъюнкцияны және бірнеше шарттарды теріске шығаруды өңдеу үшін пайдаланылуы мүмкін.
оператор | (Нәтиже (if операторының шартты өрнегі) |
---|---|
x and y | шын, егер x пен у екеуі де ақиқат болса |
x or y | шын, егер x немесе у шын болса |
not 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 мәнін қайтармайды, бірақ х немесе у. Олар 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 кодының кез келген жерінде қолдануға болатын әдіс екенін ескеріңіз.