Created
November 14, 2019 12:42
-
-
Save janaslo/447393922d81ad675129cbb661e2ad7c to your computer and use it in GitHub Desktop.
Ukázky z hodiny pyladies 13.11.2019
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# import z našeho vlastního modulu (zde soubor ve stejném adresáři) | |
from delky import cm_na_palce | |
# směs funkcí z hodiny | |
def nakresli_pole(): # zatím umí vyrobit jeden řádek | |
radek = [] | |
for i in range(5): | |
radek.append('.') | |
return radek # místo vrácení je potřeba podobným způsobem vytvořit z řádků hrací pole (seznam seznamů teček) | |
def rozdil_seznamu(prvni_seznam, druhy_seznam): | |
rozdil = [] | |
for prvek in prvni_seznam: | |
if prvek not in druhy_seznam: | |
rozdil.append(prvek) | |
return rozdil | |
def tiskni_hlasku(hlaska, kolikrat=3): # této funkci můžeme zadat jen jeden parametr (hlášku), nebo dva - hlášku a počet opakování | |
for i in range(kolikrat): | |
print(hlaska) | |
def nedelam_nic(): # zdánlivě - funkce nebere parametry a nic nevrací, ale mění globální proměnnou | |
domaci.append('had') # (která navíc při volání musí existovat), což by někdy mohlo způsobit nechtěné překvapení | |
def nacti_cislo(): | |
'''Funkce se bude uživatele tak dlouho ptát na číslo, dokud nějaké nezadá. | |
''' | |
while True: | |
vstup = input('zadej cislo ') | |
try: | |
cislo = int(vstup) # vstup nijak nezkoumáme a prostě ho zkusíme převést na číslo | |
return cislo # pokud se to povede, program se dostane na tento řádek a vrátí ho z funkce | |
except ValueError: # pokud při převodu dojde k chybě (ValueError), program skočí do tohoto bloku | |
print('to neni cislo') # a vypíše hlášku, ale důležité je, že celý nespadne, a může jet nové kolo cyklu | |
def over_pozici(pozice, delka_pole): | |
if pozice in range(delka_pole): | |
print('ok') | |
else: # výjimky můžeme kromě chytání a ošetřování naopak i vyhazovat, když v programu dojde k nějaké nežádoucí situaci | |
raise ValueError('pozice {} se nevejde do hraciho pole'.format(pozice)) | |
# rozdily seznamu | |
domaci = ['pes', 'kocka', 'mys'] | |
otravna = ['moucha', 'blecha', 'mys'] | |
print(rozdil_seznamu(domaci, otravna)) # jen v prvním | |
print(rozdil_seznamu(otravna, domaci)) # jen v druhém | |
print(domaci) | |
nedelam_nic() | |
nedelam_nic() | |
print(domaci) # najednou tam přibyli dva hadi | |
cislo = nacti_cislo() # zkus si zadat třeba i písmenka | |
print('druha mocnina tveho cisla je', cislo ** 2) | |
tiskni_hlasku(kolikrat=cislo, hlaska='ahoj') | |
# použití naší naimportované funkce | |
print(cislo, 'cm je', cm_na_palce(cislo), 'palcu') | |
over_pozici(cislo, 20) # pokud zadáme číslo > 19, program tady vyhodí chybu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def cm_na_palce(pocet_cm): | |
return pocet_cm/2.54 | |
def palce_na_cm(pocet_palcu): | |
return pocet_palcu * 2.54 | |
# možné cvičení: zkombinovat obě funkce do jedné, | |
# pomocí parametrů by se určilo, kterým směrem převádíme | |
# kód v této podmínce se provede jen tehdy, když soubor spustíme | |
# z příkazové řádky: python delky.py | |
if __name__ == "__main__": | |
print('30 cm je', cm_na_palce(30), 'palců') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment