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  stát
tohle  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  stát
else:
    co se  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  stát, když je výraz pravda
elif jiný_výraz:
    co se  stát, když platí něco jiného
elif další_výraz:
    takto můžeme pokračovat  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  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.