diff --git a/soubory/procvicovani/BONUS_1_oprav_chyby.py b/soubory/procvicovani/BONUS_1_oprav_chyby.py index 57f7df8..3946cc1 100644 --- a/soubory/procvicovani/BONUS_1_oprav_chyby.py +++ b/soubory/procvicovani/BONUS_1_oprav_chyby.py @@ -1,6 +1,6 @@ # -*- coding: UTF-8 -*- #Najdi 4 chyby v programu, oprav je. - +from random import randrange def piskvorky1d(): herni_pole = "-" * 20 na_tahu = "x" @@ -28,11 +28,11 @@ def piskvorky1d(): return def tah_hrace(herni_pole): - while True + while True: cislo_policka = input("Zadej cislo policka 0-19: ") cislo_policka = int(cislo_policka) if cislo_policka < 0 or cislo_policka > 19: - print("Prosim zadej cislo v rozmezi 0-19.") + print("Prosim zadej cislo v rozmezi 0-19.") elif herni_pole[cislo_policka] != "-": print("Policko {} je obsazene, vyber prosim jine.".format(cislo_policka)) else: @@ -44,11 +44,11 @@ def tah(herni_pole, cislo_policka, symbol): def tah_pocitace(herni_pole): while True: - cislo_policka = random.randrange(len(herni_pole)) + cislo_policka = randrange(len(herni_pole)) if herni_pole[cislo_policka] == "-": return tah(herni_pole, cislo_policka, "o") -def vyhodnot(): +def vyhodnot(herni_pole): if "xxx" in herni_pole: return "x" elif "ooo" in herni_pole: diff --git a/soubory/procvicovani/BONUS_2_fizz_buzz.py b/soubory/procvicovani/BONUS_2_fizz_buzz.py index bde70f2..d97fbdf 100644 --- a/soubory/procvicovani/BONUS_2_fizz_buzz.py +++ b/soubory/procvicovani/BONUS_2_fizz_buzz.py @@ -3,4 +3,17 @@ # Pokud je cislo delitelne 5 vypis misto neho retezec "Buzz" # Pokud je cislo delitelne soucasne 3 a 5 vypis misto neho retezec "FizzBuzz" -# Bonus: zeptej se uzivatele horni hranici - cislo do ktereho se ma vypisovat (misto 100 napevno) \ No newline at end of file +# Bonus: zeptej se uzivatele horni hranici - cislo +# do ktereho se ma vypisovat (misto 100 napevno) + +horni_hranice_pocitani = int(input("Zadej, do kolika se má počítat ")) +for cislo in range(1, horni_hranice_pocitani + 1): + if cislo % 5 == 0 and cislo % 3 == 0: + print("FizzBuzz") + elif cislo % 3 == 0: + print("Fizz") + elif cislo % 5 == 0: + print("Buzz") + else: + print(cislo) + diff --git a/soubory/procvicovani/BONUS_3_piskvorky.py b/soubory/procvicovani/BONUS_3_piskvorky.py index e8779f0..6252187 100644 --- a/soubory/procvicovani/BONUS_3_piskvorky.py +++ b/soubory/procvicovani/BONUS_3_piskvorky.py @@ -1,10 +1,12 @@ # -*- coding: UTF-8 -*- -# Zmen program tak, aby se hralo na mrizce o velikosti zadane uzivatelem, ne 20 napevno. +# Zmen program tak, aby se hralo na mrizce o velikosti zadane uzivatelem, +# ne 20 napevno. import random +pocet_poli = int(input("Zadej počet herních políček ")) def piskvorky1d(): - herni_pole = "-" * 20 + herni_pole = "-" * pocet_poli na_tahu = "x" while True: @@ -31,10 +33,10 @@ def piskvorky1d(): def tah_hrace(herni_pole): while True: - cislo_policka = input("Zadej cislo policka 0-19: ") + cislo_policka = input("Zadej cislo policka 0-" + str(pocet_poli - 1) + ": ") cislo_policka = int(cislo_policka) - if cislo_policka < 0 or cislo_policka > 19: - print("Prosim zadej cislo v rozmezi 0-19.") + if cislo_policka < 0 or cislo_policka > (pocet_poli - 1): + print("Prosim zadej cislo v rozmezi 0-" + str(pocet_poli - 1) + ": ") elif herni_pole[cislo_policka] != "-": print("Policko {} je obsazene, vyber prosim jine.".format(cislo_policka)) else: diff --git a/soubory/procvicovani/BONUS_4_pythagoras.py b/soubory/procvicovani/BONUS_4_pythagoras.py index 9d84c30..604a24a 100644 --- a/soubory/procvicovani/BONUS_4_pythagoras.py +++ b/soubory/procvicovani/BONUS_4_pythagoras.py @@ -1,4 +1,20 @@ # -*- coding: UTF-8 -*- -# Napis funkci, ktera ti pro dve zadane delky odvesen pravouhleho trojuhelnika vypocita delku prepony. (TIP budes potrebovat Pythagorovu vetu) +# Napis funkci, ktera ti pro dve zadane delky odvesen pravouhleho +# trojuhelnika vypocita delku prepony. +# (TIP budes potrebovat Pythagorovu vetu) + +# BONUS: Pridej funkce i pro vypocet strany, +# pokud zname jednu odvesnu a preponu + +# Pythagorova věta: a**2 + b**2 = c**2 +from math import sqrt + +def vypocti_delku_prepony(odvesna_a, odvesna_b): + prepona = sqrt(odvesna_a**2 + odvesna_b**2) + return prepona + +def vypocti_delku_strany(odvesna, prepona): + strana = sqrt(prepona**2 - odvesna**2) + return strana + -# BONUS: Pridej funkce i pro vypocet strany, pokud zname jednu odvesnu a preponu diff --git a/soubory/procvicovani/BONUS_5_obsahuje_7.py b/soubory/procvicovani/BONUS_5_obsahuje_7.py index 0ddda77..db5c258 100644 --- a/soubory/procvicovani/BONUS_5_obsahuje_7.py +++ b/soubory/procvicovani/BONUS_5_obsahuje_7.py @@ -1,2 +1,5 @@ # -*- coding: UTF-8 -*- # Vypis vsechna cela cisla od 1 do 1000, ktera obsahuji cislici 7. +for i in range(1,1001): + if "7" in str(i): + print (i) \ No newline at end of file diff --git a/soubory/procvicovani/BONUS_5_suma.py b/soubory/procvicovani/BONUS_5_suma.py index a5c2a4a..2f2d578 100644 --- a/soubory/procvicovani/BONUS_5_suma.py +++ b/soubory/procvicovani/BONUS_5_suma.py @@ -1,2 +1,12 @@ # -*- coding: UTF-8 -*- -# Ptej se uzivatele na cisla, dokud nenapise 'konec'. Potom vypis sumu (soucet) vsech zadanych cisel. +# Ptej se uzivatele na cisla, dokud nenapise 'konec'. +# Potom vypis sumu (soucet) vsech zadanych cisel. + +suma = 0 +while True: + zadane_cislo = input("Zadej číslo. Pokud už nechceš pokračovat, napiš 'konec'. ") + if zadane_cislo.lower() == "konec": + print("Celkový součet zadaných čísel je:", suma) + break + else: + suma = suma + int(zadane_cislo) \ No newline at end of file diff --git a/testovani/bonus/1_import_factorial.py b/testovani/bonus/1_import_factorial.py index ec0b1d4..85628f1 100644 --- a/testovani/bonus/1_import_factorial.py +++ b/testovani/bonus/1_import_factorial.py @@ -4,4 +4,22 @@ #Rozsirujici zadani: # - Osetri vstup tak, aby uzivatel mohl zadat pouze cele cislo -# - Osetri vstup tak aby uzivatel nemohl zadat zaporne cislo \ No newline at end of file +# - Osetri vstup tak aby uzivatel nemohl zadat zaporne cislo + +from math import factorial + +while True: + odpoved = input('Zadej celé kladné číslo ') + try: + cislo = int(odpoved) + except ValueError: + print('Toto není celé číslo! Zkus to znovu.') + else: + if int(odpoved) < 0: + print('Toto není kladné číslo! Zkus to znovu.') + else: + break + +faktorial_cisla = factorial(cislo) +print('Faktorial čísla {0} je {1}.'.format(cislo, faktorial_cisla)) + diff --git a/testovani/bonus/2_vyhazovani vyjimek.py b/testovani/bonus/2_vyhazovani vyjimek.py index 0b2bd04..8c3a906 100644 --- a/testovani/bonus/2_vyhazovani vyjimek.py +++ b/testovani/bonus/2_vyhazovani vyjimek.py @@ -1,3 +1,15 @@ #Ukol: At uzivatel zada desetinne cislo v rozmezi 50.0 a 150.0 # - pokud neni zadano desetinne cislo, ptej se stale znovu -# - pokud cislo je desetinne, ale neni v tomto rozmezi vyhod ValueError vyjimku \ No newline at end of file +# - pokud cislo je desetinne, ale neni v tomto rozmezi +# vyhod ValueError vyjimku + +while True: + odpoved = input('Zadej desetinné číslo v rozmezí 50.0 a 150.0 ') + if '.' not in odpoved: + print('Toto není desetinné číslo! Zkus to znovu.') + else: + break + +if float(odpoved) < 50.0 or float(odpoved) > 150.0: + raise ValueError('Číslo není v daném rozmezí! ') +