Python/Kenjiro995/Podmínky
Definice podmínky
[editovat]Pokud potřebujeme vykonat určitou část kódu pouze pokud je splněna nějaká podmínka. Python citlivě vnímá odsazení bloků a špatné odsazení vyvolá chybu. Odsazení pomocí Tab, nahrazuje závorky u jiných jazyku, které ohraničují blok příkazů. Takže co je odsazené, to je součástí bloku. Co už osazené není, je pokračování kódu za blokem.
Základní konstrukce podmínky je:
if výraz:
co se má stát
tohle už není součástí bloku podmínky
Pokud chceme přidat část, která se má splnit pokud podmínka neplatí, přidáme blok else:
if výraz:
co se má stát
else:
co se má stát v opačním případě
Často může nastat potřeba řetězení více podmínek - za klíčové slovo else můžeme přidat okamžitě další if, ale Python nám umožňuje tento zápis zkrátit:
if výraz:
co se má stát, když je výraz pravda
elif jiný_výraz:
co se má stát, když platí něco jiného
elif další_výraz:
takto můžeme pokračovat až do nekonečna
else:
konečný výchozí kód, který je vykonán, pokud vše ostatní selže
Podmíněné příkazy lze samozřejmě zanořovat:
if výraz:
if další_výraz:
co se má stát, stane se
else:
něco jiného se stane
else:
původní podmínka nesplněna
== rovná se != nerovná se <= menší nebo rovno >= větší nebo rovno < menší > větší or logické nebo and logické a not logická negace
Využití
[editovat]Testování věku
[editovat]Zkusíme napsat program, který se na začátku zeptá na věk za davatele a po té nabídne vhodné občerstvení:
vek = int(input('Kolik ti je let? '))
if vek >= 150:
print('A ze kterépak jsi planety?')
elif vek >= 18:
print('Můžeme nabídnout: víno, cider, nebo vodku.')
elif vek >= 1:
print('Můžeme nabídnout: mléko, čaj, nebo vodu')
elif vek >= 0:
print('Sunar už bohužel došel.')
else:
print('Návštěvníky z budoucnosti tady nevidíme rádi.')
Výstup:
Kolik ti je let? 40 Můžeme nabídnout: víno, cider, nebo vodku.
age = 22
if age < 6:
print("předškolák")
elif age < 18: # testuje se, pokud neplatí předchozí podmínka
print("školák")
elif age < 65: # testuje se, pokud neplatí ani jedna předchozí podmínka
print("dospělý ")
else: # provede se, pokud neplatí ani jedna předchozí podmínka
print("důchodce")
Výstup:
dospělý
Testování velikosti čísla
[editovat]a = int(input('Zadej číslo a: '))
if a == 1:
print("'a' je jedna")
else:
print("'a' není jedna")
Výstup:
Zadej číslo a: 1 'a' je jedna
x = int(input("Zadejte celé číslo: "))
if x < 0:
x = 0
print('Záporné číslo změněno na nulu')
elif x == 0:
print('Nula')
elif x == 1:
print('Jedna')
else:
print('Více')
Výstup:
Zadejte celé číslo: 0 Nula
Testování logických hodnot
[editovat]muz = True
zena = True
vysoky = False
if muz or vysoky:
print("Jsi muž nebo vysoký, nebo obojí.")
else:
print("Jsi žena nebo malá, nebo ani jedno.")
Výstup:
Jsi muž nebo vysoký, nebo obojí.
muz = True
zena = True
vysoky = False
if muz and vysoky:
print("Jsi muž a vysoký")
elif muz and not vysoky:
print("Jsi muž ale malý")
elif zena and vysoky:
print("Jsi žena a vysoká")
elif zena and not vysoky:
print("Jsi žena a malá")
else:
print("Nevim kdo jsi")
Výstup:
Jsi muž ale malý
Testování sudá a lichá
[editovat]x = 37
if x % 2 == 0: # při splnění podmínky
print (x, "je sudé") # se provede odsazený příkaz
else: # při nesplnění podmínky
print (x, "je liché") # se provede tento příkaz
Výstup:
37 je liché
Testování hlasitosti
[editovat]hlasitost = 99
if hlasitost < 20:
print("Je to dost potichu.")
elif hlasitost < 40:
print("Jako hudba v pozadí dobré.")
elif hlasitost < 60:
print("Skvělé, slyším všechny detaily.")
elif hlasitost < 80:
print("Dobré na party.")
elif hlasitost < 100:
print("Trochu moc nahlas!")
else:
print("Krvácí mi uši!")
Výstup:
Trochu moc nahlas!
Porovnání stejnosti a různosti
[editovat]x = 5
y = 10
if x == y:
print(x, "a", y, "jsou si rovny")
else:
print(x, "a", y, "jsou rozdílné")
Výstup:
5 a 10 jsou rozdílné
x = 5
y = 10
if x == y:
print(x, "and", y, "are equal")
else:
if x < y:
print(x, "is less than", y)
else:
print(x, "is greater than", y)
Výstup:
5 is less than 10
Porovnání větší a menší
[editovat]x = 5
y = 10
if x < y:
print(x, "je menší než", y)
elif x > y:
print(x, "je větší než", y)
else:
print(x, "je stejné jako", y)
Výstup:
5 je menší než 10
Porovnání rozsahu hodnot
[editovat]x = 5
y = 10
if 0 < x:
if x < 10:
print("x is a positive single digit.")
Výstup:
x is a positive single digit.
x = 5
if 0 < x and x < 10:
print("x is a positive single digit.")
Výstup:
x is a positive single digit.
x = 5
if 0 < x < 10:
print("x is a positive single digit.")
Výstup:
x is a positive single digit.