Објасните условно гранање са иф изјавама у Питхон-у.
- Основе иф изјава (иф, елиф, елсе)
- Наведите услове помоћу оператора поређења итд.
- Наведите услове по броју, листи итд.
- Наведите више услова или негација помоћу логичких оператора (и, или, не)
- Условни изрази на новим редовима и више редова
Постоји и тернарни оператор који описује условну грану у једном реду. Погледајте следећи чланак.
Основе иф изјава (иф, елиф, елсе)
Основни облик иф наредбе је следећи
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.`
„Елиф“ одговара „елсе иф“ у Ц и другим језицима, и може постојати било који број „елифова“.
Ако постоји само један условни израз или обрада када није неопходно, блокови „елиф“ и „елсе“ могу бити изостављени.
Наведите услове помоћу оператора поређења итд.
Наведите услов помоћу операције која враћа боол тип (тачно, нетачно), као што је оператор поређења.
Питхон оператори поређења су следећи
оператер | резултат |
---|---|
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 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
Следеће се може написати на начин који је јединствен за Питхон. За детаље погледајте следећи чланак.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 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
У условном изразу Питхон иф исказа, следећи објекти се сматрају нетачним.
- Константе дефинисане као нетачне:
None
,false
- Нула у нумеричком типу:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Празна секвенца или збирка:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
Бројеви који представљају нулу, празне стрингове, листе итд. сматрају се нетачним; сви остали се сматрају истинитим.
Како се процењује објекат може се проверити помоћу боол().
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
Имајте на уму да ће стринг ‘Фалсе’ такође бити тачан, јер ће, као што је приказано у горњем примеру, сваки стринг који није празан у стрингу бити истинит.’ Да бисте конвертовали одређени стринг као што је ‘Труе’ или ‘Фалсе’ у 1,0, користите стртобоол() у дистутилс.утил модулу.
Наведите више услова или негација помоћу логичких оператора (и, или, не)
Логички оператори (и, или, не) се могу користити за руковање логичком коњункцијом, логичком дисјункцијом и негацијом више услова.
оператер | (Резултат (у условном изразу иф наредбе) |
---|---|
x and y | тачно ако су и к и и тачни |
x or y | тачно ако је или к или и тачно |
not 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
У ствари, „к и и“ и „к или и“ не враћају Тачно или Нетачно, већ или к или и. Све док се користе у условним изразима у иф наредбама, нема потребе да бринете о њима, јер се процењују на Тачно или Нетачно. За детаље погледајте следећи чланак.
- ПОВЕЗАН:Питхон-ови логички оператори „и, или, не“ (логичка коњункција, логичка дисјункција, негација)
Могуће је користити и и или више пута.
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
Можете користити обрнуту косу црту да бисте прекинули линију колико год пута желите. Слично, можете прекинути линију било који број пута унутар заграда. Нема ограничења увлачења.
Имајте на уму да је ово техника која се може користити било где у Питхон коду, не само у иф изјавама.