├── .gitignore ├── README.md ├── cisla_a_retezce └── reseni.py ├── cykly ├── cykly02.py ├── hesla.py ├── priklad1.py ├── priklad4.py ├── priklad5.py └── priklad6.py ├── funkce_a_moduly ├── na_doma_reseni.py └── reseni.py ├── podminky ├── delitelnost.py ├── prihlaseni.py ├── registrace.py ├── rok.py ├── ruleta.py └── vstupenky02.py ├── promenne ├── na_doma_reseni.py └── reseni.py ├── sekvence ├── priklad2.py ├── priklad3.py └── registrace.py └── vstup_a_vystup ├── generator.py ├── jmeno.py ├── kostky.py ├── vstup-vystup.py └── vstupenky01.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Řešení příkladů z kurzu Úvod do programování 2 | 3 | ### Čísla a řetězce 4 | 5 | * [Řešení příkladů](cisla_a_retezce/reseni.py) 6 | 7 | ### Proměnné 8 | 9 | * [Řešení příkladů](promenne/reseni.py) 10 | * [Řešení úloh na doma](promenne/na_doma_reseni.py) 11 | 12 | ### Funkce a moduly 13 | 14 | * [Řešení příkladů](funkce_a_moduly/reseni.py) 15 | * [Řešení úloh na doma](funkce_a_moduly/na_doma_reseni.py) 16 | 17 | ### Vstup a výstup 18 | 19 | * [Řešení příkladu 1](vstup_a_vystup/vstup-vystup.py) 20 | * [Řešení příkladu 2](vstup_a_vystup/jmeno.py) 21 | * [Řešení příkladu 3](vstup_a_vystup/vstupenky01.py) 22 | * [Řešení příkladu 4](vstup_a_vystup/kostky.py) 23 | * [Řešení příkladu 5](vstup_a_vystup/generator.py) 24 | 25 | ### Podmínky 26 | 27 | * [Řešení příkladu 1](podminky/prihlaseni.py) 28 | * [Řešení příkladu 2](podminky/vstupenky02.py) 29 | * [Řešení příkladu 3](podminky/registrace.py) 30 | * [Řešení příkladu 4](podminky/rok.py) 31 | 32 | #### Podmínky - čtení na doma 33 | 34 | * [Řešení příkladu 1](podminky/delitelnost.py) 35 | * [Řešení příkladu 4](podminky/ruleta.py) 36 | 37 | ### Sekvence 38 | 39 | * [Řešení příkladu 2](sekvence/priklad2.py) 40 | * [Řešení příkladu 3](sekvence/priklad3.py) 41 | 42 | ### Cykly 43 | 44 | * [Řešení příkladu 1](cykly/priklad1.py) 45 | * [Řešení příkladu 2](cykly/hesla.py) 46 | * [Řešení příkladu 3](cykly/cykly02.py) 47 | * [Řešení příkladu 4](cykly/priklad4.py) 48 | * [Řešení příkladu 5](cykly/priklad5.py) 49 | * [Řešení příkladu 6](cykly/priklad6.py) 50 | -------------------------------------------------------------------------------- /cisla_a_retezce/reseni.py: -------------------------------------------------------------------------------- 1 | # 1 2 | # a 3 | print(12 * 174 * 15) 4 | # b 5 | print(12 * 174 / 2 * 15 + 12 * 174 / 2 * 15 * 0.65) 6 | # S použitím závorek 7 | print(12 * 15 * 174 / 2 * (1 + 0.65)) 8 | 9 | # 2 10 | # a 11 | print("Národní divadlo") 12 | # b 13 | print("Národní divadlo") 14 | # c 15 | # Například 16 | print("Národní divadlo" * 5) 17 | # d 18 | print("1" * 256 + "0" * 256) 19 | 20 | # 3 21 | # a 22 | print("1" + "0" * 123) 23 | # b 24 | print("1" + "000 " * 41) 25 | -------------------------------------------------------------------------------- /cykly/cykly02.py: -------------------------------------------------------------------------------- 1 | mesice = [ 2 | ['leden', 31], 3 | ['únor', 28], 4 | ['březen', 31], 5 | ['duben', 30], 6 | ['květen', 31], 7 | ['červen', 30], 8 | ['červenec', 31], 9 | ['srpen', 31], 10 | ['září', 30], 11 | ['říjen', 31], 12 | ['listopad', 30], 13 | ['prosinec', 31] 14 | ] 15 | for mesic in mesice: 16 | print(mesic[0]) 17 | for mesic in mesice: 18 | print(mesic[1]) -------------------------------------------------------------------------------- /cykly/hesla.py: -------------------------------------------------------------------------------- 1 | hesla = [ 2 | 'xyz101', 3 | 'punťa', 4 | 'razor-blade', 5 | '1234', 6 | '12011986', 7 | 'martin111', 8 | 'trhnisi', 9 | 'hokuspokus', 10 | 'jeník15', 11 | 'kristus-te-spasi', 12 | 'beruška', 13 | 'strčprstskrzkrk' 14 | ] 15 | # b 16 | for heslo in hesla: 17 | print(heslo) 18 | # c 19 | for heslo in hesla: 20 | if len(heslo) > 8: 21 | print(heslo) 22 | # d 23 | for heslo in hesla: 24 | if "-" in heslo: 25 | print(heslo) -------------------------------------------------------------------------------- /cykly/priklad1.py: -------------------------------------------------------------------------------- 1 | hodnoceni = [7, 9, 6, 7, 9, 8] 2 | for prvek_hodnoceni in hodnoceni: 3 | print(f"{prvek_hodnoceni}/10") 4 | -------------------------------------------------------------------------------- /cykly/priklad4.py: -------------------------------------------------------------------------------- 1 | hry = [ 2 | ['Ňadro na ňadru na nádru', 180], 3 | ['Útok plyšových krokodýlů', 95], 4 | ['Cesta do říše zelí', 128], 5 | ['Romance na zdymadle', 144], 6 | ['Zátiší s mimozemšťanem', 135], 7 | ['Čtyři facky a dortík', 100], 8 | ['Motorová okurka', 165], 9 | ['Johnny Noir', 140], 10 | ['Pražská kavárna vrací úder', 130], 11 | ['Pět sester ve vratech', 111], 12 | ['Stařec a krajta', 187], 13 | ['Růžová nemoc', 210], 14 | ['Smrt v přímém přenosu', 265] 15 | ] 16 | 17 | # a 18 | for hra in hry: 19 | print(hra[0]) 20 | # b 21 | for hra in hry: 22 | if hra[1] > 120: 23 | print(hra[0]) 24 | # c 25 | for hra in hry: 26 | print(f"{hra[0]} trvá {hra[1] // 60} hodin a {hra[1] % 60} minut.") 27 | print(hra[0] + " trvá " + str(hra[1] // 60) + " hodin a " + str(hra[1] % 60) + " minut.") -------------------------------------------------------------------------------- /cykly/priklad5.py: -------------------------------------------------------------------------------- 1 | cisla = [10.5, 13.3, 17.2, 11.5] 2 | 3 | soucet = 0 4 | for cislo in cisla: 5 | soucet = soucet + cislo 6 | prumer = soucet / len(cisla) 7 | print(prumer) 8 | -------------------------------------------------------------------------------- /cykly/priklad6.py: -------------------------------------------------------------------------------- 1 | cisla = [10.5, 13.3, 17.2, 11.5] 2 | nejvetsi = cisla[0] 3 | 4 | for cislo in cisla: 5 | if cislo > nejvetsi: 6 | nejvetsi = cislo 7 | print(nejvetsi) -------------------------------------------------------------------------------- /funkce_a_moduly/na_doma_reseni.py: -------------------------------------------------------------------------------- 1 | # 1 2 | # a 3 | import math 4 | cislo = 2.5 5 | zaokrouhlene = math.floor(cislo + 0.5) 6 | # b 7 | import random 8 | cislo = random.uniform(0, 10) 9 | zaokrouhlene = math.floor(cislo + 0.5) 10 | -------------------------------------------------------------------------------- /funkce_a_moduly/reseni.py: -------------------------------------------------------------------------------- 1 | # 1 2 | nazev = "Divadlo Pěst na oko" 3 | delka = len(nazev) * 30 4 | print(delka) 5 | 6 | # 2 7 | cena = 12 * 0.65 8 | koruny = round(24 * cena) 9 | print(koruny) 10 | 11 | # 3 12 | import math 13 | koruny = math.ceil(24 * cena) 14 | print(koruny) 15 | 16 | # 4 17 | import random 18 | cislo = random.randint(1, 24) 19 | print(cislo) 20 | cislo = random.randint(1, 24) 21 | print(cislo) 22 | cislo = random.randint(1, 24) 23 | print(cislo) 24 | cislo = random.randint(1, 24) 25 | print(cislo) 26 | 27 | -------------------------------------------------------------------------------- /podminky/delitelnost.py: -------------------------------------------------------------------------------- 1 | cislo = input("Zadej číslo ") 2 | cislo = int(cislo) 3 | if cislo % 3 == 0 and cislo % 4 == 0: 4 | print("Číslo je dělitelné čísly 3 i 4.") 5 | else: 6 | print("Může být dělitelné pouze číslem 3, pouze číslem 4 nebo ani jedním z nich.") 7 | -------------------------------------------------------------------------------- /podminky/prihlaseni.py: -------------------------------------------------------------------------------- 1 | uzivatelske_jmeno = input("Zadej uživatelské jméno: ") 2 | heslo = input("Zadej heslo: ") 3 | if heslo != "simsalabim": 4 | print("Vstup nepovolen!") 5 | # Ukončí program, tj. po zavolání této funkce se již žádné další příkazy nespouštějí 6 | exit() 7 | vek = input("Zadej věk: ") 8 | vek = int(vek) 9 | if vek > 18: 10 | print("Smíš vstoupit.") 11 | else: 12 | print("Vstup nepovolen") 13 | -------------------------------------------------------------------------------- /podminky/registrace.py: -------------------------------------------------------------------------------- 1 | uzivatelske_jmeno = input("Zadej uživatelské jméno: ") 2 | heslo = input("Zadej heslo: ") 3 | heslo2 = input("Zadej heslo znovu: ") 4 | if heslo != heslo2: 5 | print("Hesla se neshodují.") 6 | elif len(heslo) <= 8: 7 | print("Heslo je příliš krátké") 8 | -------------------------------------------------------------------------------- /podminky/rok.py: -------------------------------------------------------------------------------- 1 | rok = input("Zadej rok: ") 2 | rok = int(rok) 3 | if rok % 4 != 0: 4 | print("Rok není přestupný") 5 | exit() 6 | # Zde využíváme vnořenou podmínku - podmínku uvnitř podmínky 7 | if rok % 100 == 0: 8 | if rok % 400 == 0: 9 | print("Rok je přestupný.") 10 | else: 11 | print("Rok není přestupný") 12 | else: 13 | print("Rok je přestupný.") 14 | 15 | """ 16 | Alternativní řešení pomocí klíčových slov and a or. 17 | 18 | Klíčová slova and a or jsou popsaná zde: 19 | https://kodim.cz/czechitas/uvod-do-progr-1/prvni-krucky/podminky/cteni-na-doma 20 | """ 21 | 22 | if rok % 4 == 0 and (rok % 100 != 0 or rok % 400 == 0): 23 | print("Rok je přestupný.") 24 | else: 25 | print("Rok není přestupný") 26 | -------------------------------------------------------------------------------- /podminky/ruleta.py: -------------------------------------------------------------------------------- 1 | """ 2 | Klíčová slova and a or jsou popsaná zde: 3 | 4 | https://kodim.cz/czechitas/uvod-do-progr-1/prvni-krucky/podminky/cteni-na-doma 5 | """ 6 | 7 | cislo = input("Zadej čislo: ") 8 | cislo = int(cislo) 9 | 10 | if cislo == 0: 11 | print("Číslo je 0.") 12 | exit() 13 | 14 | if cislo % 2 == 0: 15 | print("Číslo je sudé.") 16 | else: 17 | print("Číslo je liché.") 18 | 19 | if cislo <= 10: 20 | if cislo % 2 == 0: 21 | print("Číslo je černé.") 22 | else: 23 | print("Číslo je červené.") 24 | elif cislo <= 19: 25 | if cislo % 2 == 1: 26 | print("Číslo je černé.") 27 | else: 28 | print("Číslo je červené.") 29 | elif cislo <= 28: 30 | if cislo % 2 == 0: 31 | print("Číslo je černé.") 32 | else: 33 | print("Číslo je červené.") 34 | else: 35 | if cislo % 2 == 1: 36 | print("Číslo je černé.") 37 | else: 38 | print("Číslo je červené.") 39 | 40 | # Alternativní řešení 41 | 42 | cislo = input("Zadej čislo: ") 43 | cislo = int(cislo) 44 | 45 | if cislo == 0: 46 | print("Číslo je 0.") 47 | exit() 48 | if cislo % 2 == 0: 49 | print("Číslo je sudé.") 50 | else: 51 | print("Číslo je liché.") 52 | if cislo <= 10: 53 | if cislo % 2 == 0: 54 | print("Číslo je černé.") 55 | else: 56 | print("Číslo je červené.") 57 | elif 19 <= cislo <= 28: 58 | if cislo % 2 == 0: 59 | print("Číslo je černé.") 60 | else: 61 | print("Číslo je červené.") 62 | else: 63 | if cislo % 2 == 1: 64 | print("Číslo je černé.") 65 | else: 66 | print("Číslo je červené.") 67 | -------------------------------------------------------------------------------- /podminky/vstupenky02.py: -------------------------------------------------------------------------------- 1 | print("Divadlo Pěst na oko") 2 | print("Vítejte v online rezervaci vstupenek") 3 | print("Pro vstup do systému je potřeba registrace") 4 | uzivatelske_jmeno = input("Zadej uživatelské jméno: ") 5 | vek = input("Zadej věk: ") 6 | vek = int(vek) 7 | plna_cena = 12 8 | if vek < 6: 9 | cena = 0 10 | elif vek <= 26: 11 | cena = plna_cena * 0.65 12 | elif vek <= 64: 13 | cena = plna_cena 14 | else: 15 | cena = plna_cena * 0.5 16 | cena = round(cena, 2) 17 | print(f"Cena vstupenky je {cena}.") 18 | print("Cena vstupenky je " + str(cena) + ".") 19 | -------------------------------------------------------------------------------- /promenne/na_doma_reseni.py: -------------------------------------------------------------------------------- 1 | # V programu není print, ale ten můžete poté vložit kamkoli, abyste si zkontrolovali výsledek 2 | 3 | # 1 4 | # a 5 | herci = 15 6 | platy = herci * 22392 7 | # b 8 | sleva = 0.65 9 | predstaveni = "Každý má svou pravdu" 10 | # c 11 | herci += 2 12 | platy = herci * 22392 13 | 14 | # 2 15 | # a 16 | podil = 1024 // 72 17 | zbytek = 1024 % 72 18 | # b 19 | delka = 265 20 | # c 21 | hodin = delka // 60 22 | minut = delka % 60 23 | 24 | # 3 25 | zbyva = 350 % 32 26 | dokoupit = 32 - zbyva 27 | celkem_rad = (350 + dokoupit) / 32 28 | -------------------------------------------------------------------------------- /promenne/reseni.py: -------------------------------------------------------------------------------- 1 | # 1 2 | 3 | a = 15 4 | b = 4.7 5 | 6 | # a 7 | vysledek_a = a + b 8 | # b 9 | vysledek_b = a * b 10 | # c 11 | vysledek_c = a % b 12 | # d 13 | vysledek_d = a // b 14 | 15 | # 2 16 | 17 | # a 18 | nazev = "Poslední strana" 19 | # b 20 | cena_za_kus = 50 21 | # c 22 | sleva = 0.3 23 | # d 24 | cena_za_kus = cena_za_kus * (1 - sleva) 25 | 26 | # 3 27 | # a 28 | cena_dospely = 990 29 | # b 30 | cena_dite = cena_dospely * 0.5 31 | # c 32 | naklady_celkem = cena_dospely * 60 + cena_dite * 8 33 | # d 34 | cena_dospely = 1000 35 | cena_dite = cena_dospely * 0.5 36 | naklady_celkem = cena_dospely * 60 + cena_dite * 8 37 | -------------------------------------------------------------------------------- /sekvence/priklad2.py: -------------------------------------------------------------------------------- 1 | # a 2 | pocty_divaku = [120, 100, 95, 78, 100] 3 | 4 | # b 5 | zaplnenost = [0.9, 0.8, 0.7, 0.65, 0.8, 0.85] 6 | 7 | # c 8 | hry = ["Hra A", "Hra B", "Hra C", "Hra D", "Hra E", "Hra F"] 9 | druha_hra = hry[1] 10 | 11 | # d 12 | hodnoceni = [["Casopis A", 5], ["Casopis B", 8], ["Casopis C", 7]] 13 | -------------------------------------------------------------------------------- /sekvence/priklad3.py: -------------------------------------------------------------------------------- 1 | heslo = "superTajneHeslo123." 2 | 3 | znak = input("Zadej 2. znak hesla: ") 4 | if znak != heslo[1]: 5 | print("Chyba ověření.") 6 | exit() 7 | znak = input("Zadej 5. znak hesla: ") 8 | if znak != heslo[4]: 9 | print("Chyba ověření.") 10 | exit() 11 | znak = input("Zadej 7. znak hesla: ") 12 | if znak != heslo[6]: 13 | print("Chyba ověření.") 14 | exit() 15 | print("Ověření bylo úspěšné!") 16 | -------------------------------------------------------------------------------- /sekvence/registrace.py: -------------------------------------------------------------------------------- 1 | uzivatel = input('Zadej uživatelské jméno: ') 2 | print(uzivatel[2]) 3 | print(uzivatel[4]) 4 | print(uzivatel[6]) 5 | print(uzivatel[100]) -------------------------------------------------------------------------------- /vstup_a_vystup/generator.py: -------------------------------------------------------------------------------- 1 | import random 2 | dolni_mez = input("Zadej dolní mez: ") 3 | horni_mez = input("Zadej horní mez: ") 4 | cislo = random.randint(int(dolni_mez), int(horni_mez)) 5 | print(cislo) -------------------------------------------------------------------------------- /vstup_a_vystup/jmeno.py: -------------------------------------------------------------------------------- 1 | # a 2 | jmeno = input("Zadej jméno: ") 3 | prijmeni = input("Zadej příjmení: ") 4 | print(jmeno + " " + prijmeni) 5 | # b 6 | vek = input("Zadej věk: ") 7 | vek = int(vek) 8 | print(f"{jmeno} {prijmeni}, věk: {vek}") 9 | print(jmeno + " " + prijmeni + ", věk: " + str(vek)) 10 | -------------------------------------------------------------------------------- /vstup_a_vystup/kostky.py: -------------------------------------------------------------------------------- 1 | import random 2 | cislo = random.randint(1, 6) + random.randint(1, 6) 3 | print(cislo) -------------------------------------------------------------------------------- /vstup_a_vystup/vstup-vystup.py: -------------------------------------------------------------------------------- 1 | # a 2 | print("Divadlo Pěst na oko") 3 | # b 4 | nazev = "Zkrocení zlé ženy" 5 | cas = "19:30" 6 | print(nazev + " - " + cas) 7 | # Použití formátovaného řetězce (popsaný ve čtení na doma) 8 | print(f"{nazev} - {cas}") 9 | # c 10 | hodina = 19 11 | minuta = 30 12 | print(nazev + " - " + str(hodina) + ":" + str(minuta)) 13 | print(nazev, " - ", hodina, ":", minuta, sep="") 14 | # Použití formátovaného řetězce (popsaný ve čtení na doma) 15 | print(f"{nazev} - {hodina}:{minuta}") -------------------------------------------------------------------------------- /vstup_a_vystup/vstupenky01.py: -------------------------------------------------------------------------------- 1 | print("Divadlo Pěst na oko") 2 | print("Vítejte v online rezervaci vstupenek") 3 | print("Pro vstup do systému je potřeba registrace") 4 | uzivatelske_jmeno = input("Zadej uživatelské jméno: ") 5 | vek = input("Zadej věk: ") --------------------------------------------------------------------------------