Bonusová cvičení: Procházení textu

Bonusy jsou pro rychlíky – když máš hotová cvičení a zbývá čas. Každý bonus má vlastní soubor ve složce lekce03-funkce-a-cyklus-for/03_prochazeni/cviceni_bonusy/. Řešení si rozklikni až po vlastním pokusu – tvoje řešení může vypadat jinak, a to je v pořádku.

Bonus 1

Soubor: cviceni_bonusy/01_trojuhelnik_z_hvezdicek.py

Trojúhelník z hvězdiček. Uživatel zadá výšku a ty vypiš trojúhelník, kde první řádek má jednu hvězdičku, druhý dvě atd.:

*
**
***
Zobrazit řešeníSkrýt řešení
vyska = int(input("Jak vysoký trojúhelník? "))
for radek in range(1, vyska + 1):
    print("*" * radek)                   # "*" * 3 je "***"

Bonus 2

Soubor: cviceni_bonusy/02_ramecek.py

Rámeček. Uživatel zadá velikost N. Vnořenými cykly nakresli čtverec N x N, kde okraj tvoří X a vnitřek je prázdný. Pro N=4: X X X X X X X X X X X X Zamysli se: na kterém řádku a sloupci se kreslí X a kdy mezera?

Zobrazit řešeníSkrýt řešení
n = int(input("Jak velký rámeček? "))
for radek in range(n):
    for sloupec in range(n):
        if radek == 0 or radek == n - 1 or sloupec == 0 or sloupec == n - 1:
            print("X", end=" ")
        else:
            print(" ", end=" ")
    print()

Bonus 3

Soubor: cviceni_bonusy/03_ciferny_soucet.py

Ciferný součet. Uživatel zadá číslo. Sečti jeho jednotlivé číslice a součet vypiš (třeba z 253 vyjde 2 + 5 + 3 = 10).

Zobrazit řešeníSkrýt řešení
cislo = input("Zadej číslo: ")           # necháme jako text, ať projdeme číslice
soucet = 0
for znak in cislo:
    soucet = soucet + int(znak)          # každou číslici převedeme na číslo
print("Ciferný součet:", soucet)

Bonus 4

Soubor: cviceni_bonusy/04_teplotni_skok.py

Teplotní skok. Uživatel postupně zadá sedm denních teplot (klidně i záporných). Najdi a vypiš největší skok mezi dvěma sousedními dny – tedy největší rozdíl teplot ze dne na den (bez ohledu na to, jestli teplota stoupla, nebo klesla).

Zobrazit řešeníSkrýt řešení
predchozi = int(input("Zadej teplotu: "))
nejvetsi_skok = 0
for den in range(6):                     # zbývá dalších šest dní
    teplota = int(input("Zadej teplotu: "))
    skok = abs(teplota - predchozi)      # rozdíl proti včerejšku, bez ohledu na směr
    if skok > nejvetsi_skok:
        nejvetsi_skok = skok
    predchozi = teplota                  # dnešek se stane včerejškem
print("Největší skok:", nejvetsi_skok)

Bonus 5

Soubor: cviceni_bonusy/05_palindrom.py

Palindrom. Uživatel zadá slovo. Zjisti, jestli se čte stejně zepředu i zezadu (třeba "kajak" nebo "radar"). Zamysli se, jak si slovo poskládáš pozpátku a jak obě verze porovnáš.

Zobrazit řešeníSkrýt řešení
slovo = input("Napiš slovo: ")
obracene = ""
for znak in slovo:
    obracene = znak + obracene           # každé písmeno dáme PŘED dosavadní výsledek
if slovo == obracene:
    print("Je to palindrom.")
else:
    print("Není to palindrom.")

Zpět na téma: Procházení textu

Zdrojové soubory na GitHubu

Komentáře

Máš k této stránce dotaz nebo jsi našla chybu? Napiš to sem. Ke komentování je potřeba účet na GitHubu.