Rozhodování je jedním z nejzákladnějších pojmů počítačového programování. Python podporuje běžné příkazy řízení toku, které se vyskytují v jiných jazycích, s určitými úpravami. if
kontrolní příkaz je jedním z nejzákladnějších a nejznámějších příkazů používaných ke spuštění kódu na základě konkrétní podmínky.
V tomto článku projdeme základy if
příkaz v Pythonu.
Python if
Prohlášení #
Nejzákladnější forma if
příkaz v Pythonu je následující:
if EXPRESSION:
STATEMENT
if
příkaz začíná if
klíčové slovo následované podmíněným výrazem.
EXPRESSION
musí následovat (:
) dvojtečka. Pokud EXPRESSION
vyhodnotí jako True
, STATEMENT
je popraven. Pokud EXPRESSION
vrátí False
, nic se neděje; STATEMENT
se ignoruje. STATEMENT
být libovolný příkaz, včetně více příkazů nebo dále vnořených if
prohlášení. Pokud nechcete provádět žádné příkazy, použijte pass
prohlášení.
STATEMENT
blok začíná odsazením a končí prvním neodsazeným řádkem. Většina lidí se rozhodne použít odsazení se 4 nebo 2 mezerami. Oficiální průvodce styly pro kód Python doporučuje používat 4 mezery na úroveň odsazení a vyhnout se míchání tabulátorů a mezer pro odsazení.
Podívejme se na následující příklad skriptu, který kontroluje, zda je dané číslo větší než 5.
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
Uložte kód do souboru a spusťte jej z příkazového řádku:
python test.py
Skript vás vyzve k zadání čísla. Pokud například zadáte 10, podmíněný výraz se vyhodnotí jako True
(10 je větší než 5) a print
funkce bude provedena.
10 is greater than 5.
Python podporuje standardní operace porovnání:
a == b
- Pravda, pokudand
ab
jsou si rovni.a != b
- Pravda, pokudand
ab
nejsou si rovni.a > b
- Pravda, pokudand
je větší nežb
.a >= b
- Pravda, pokudand
je rovno nebo větší nežb
.a < b
- Pravda, pokudand
je menší nežb
.a <= b
- Pravda, pokudand
je rovno nebo menší nežb
.
Můžete také použít in
klíčové slovo pro kontrolu, zda je hodnota přítomna v iterovatelném (řetězec, seznam, n-tice, slovník atd.):
s = 'linuxize'
if 'ze' in s:
print('True.')
Zde je další příklad použití slovníku:
d = {'a': 2, 'b': 4}
if 'a' in d:
print('True.')
Při použití ve slovníku in
klíčové slovo kontroluje, zda má slovník specifický klíč.
Chcete-li negovat podmíněný výraz, použijte logické not
operátor:
number = int(input('Enter a number: '))
if not number < 5:
print(number, 'is greater than 5.')
if..else
Prohlášení #
if..else
příkaz vyhodnotí podmínku a provede jeden ze dvou příkazů v závislosti na výsledku.
Python if..else
výpis má následující tvar:
if EXPRESSION:
STATEMENT1
else:
STATEMENT2
Pokud EXPRESSION
vyhodnotí jako True
, STATEMENT1
je proveden. V opačném případě, pokud EXPRESSION
vrátí False
, STATEMENT2
je proveden. Můžete mít pouze jeden else
klauzule v prohlášení.
else
klíčové slovo musí končit (:
) dvojtečka a musí mít stejnou úroveň odsazení jako odpovídající if
klíčové slovo.
Pojďme přidat else
klauzule k předchozímu příkladu skriptu:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
else:
print(number, 'is equal or less than 5.')
Pokud spustíte kód a zadáte číslo, skript vypíše jinou zprávu podle toho, zda je číslo větší nebo menší/rovno 5.
if..elif..else
Prohlášení #
elif
klíčové slovo je zkratka pro else if
.
Python if..elif..else
výpis má následující tvar:
if EXPRESSION1:
STATEMENT1
elif: EXPRESSION2:
STATEMENT2
else:
STATEMENT3
Pokud EXPRESSION1
vyhodnotí jako True
, STATEMENTS1
je proveden. Pokud EXPRESSION2
vyhodnotí jako True
, STATEMENTS2
je proveden. Pokud se žádný z výrazů nevyhodnotí jako True
, STATEMENTS3
se provede.
elif
klíčové slovo musí končit (:
) dvojtečka a musí mít stejnou úroveň odsazení jako odpovídající if
klíčové slovo. Můžete mít jeden nebo více elif
doložky v prohlášení. else
doložka je nepovinná. Pokud else
klauzule není použita a všechny výrazy jsou vyhodnoceny jako False
, žádný z příkazů není proveden.
Podmínky se vyhodnocují postupně. Jakmile podmínka vrátí True
, zbývající podmínky se neprovedou a řízení programu se přesune na konec if
prohlášení.
Pojďme přidat elif
klauzule k předchozímu skriptu:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
elif number < 5:
print(number, 'is less than 5.')
else:
print(number, 'is equal to 5.')
Na rozdíl od většiny programovacích jazyků Python nemá switch
nebo case
prohlášení. Sekvence více elif
příkazy lze použít jako náhradu za switch
nebo case
.
Vnořené if
Výroky #
Python vám umožňuje vnořit if
příkazy v rámci if
prohlášení. Obecně byste se měli vždy vyhnout přílišnému odsazení a zkusit použít elif
místo vnoření if
prohlášení.
Následující skript vás vyzve k zadání tří čísel a vytiskne největší číslo z čísel.
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2:
if number1 > number3:
print(number1, 'is the largest number.')
else:
print(number3, 'is the largest number.')
else:
if number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
Takto bude výstup vypadat:
Enter the first number: 455
Enter the second number: 567
Enter the third number: 354
567 is the largest number.
Více podmínek #
Logické or
a and
operátory umožňují kombinovat více podmínek v if
prohlášení.
Zde je další verze skriptu pro tisk největšího čísla ze tří čísel. V této verzi namísto vnořeného if
příkazy, budeme používat logické and
operátor a elif
.
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2 and number1 > number3:
print(number1, 'is the largest number.')
elif number2 > number3 and number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
Závěr č.
if
, if..else
a if..elif..else
příkazy vám umožňují řídit tok provádění Pythonu vyhodnocením daných podmínek.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.