Osmá lekce obsahuje sadu příkladů na procvičení podmínek, cyklů, seznamů a generátoru náhodných čísel.

Studijní materiály

Odkaz pro zobrazení Google Slides.

Zpětná vazba

Kterým příkazem mažeme položku ze seznamu?
Jakým příkazem rozdělíš slovo/slova do seznamu dle separátoru?

Programy

Pozpátku

"""
pozpatku.py
Vytvoř program, který načte řetězec a vypíše ho pozpátku od posledního znaku po první. Program uprav tak, že načteš celou větu, kterou rozsekáš po slovech a ta vypíšeš pozpátku.

Př.: Dnes je ale krásný den!
!ned ýnsárk ela ej senD
"""
veta = "Ahoj světe!"
delka = len(veta)
zacatek = delka - 1
konec = -1
krok = -1

for i in range(zacatek, konec, krok):
print(veta[i], end = "")

print("\n------------------")
seznam = list(veta.split(" "))

for slovo in seznam:
# print(slovo)
delka = len(slovo)
zacatek = delka - 1
konec = -1
krok = -1
for i in range(zacatek, konec, krok):
print(slovo[i], end = "")
print()

Palindrom

"""
palindrom.py
Vytvoř program, který vyhodnotí, zdali je vložené slovo palindrom. Palindrom je slovo, které lze číst zepředu i zezadu stejně.
"""
slovo = input("Vlož slovo: ")
slovo = slovo.lower()

pozpatku = ""
zacatek = len(slovo) - 1
konec = -1
krok = -1

for i in range(zacatek, konec, krok):
pozpatku = pozpatku + slovo[i]

# print(pozpatku)
if slovo == pozpatku:
print("Je to palindrom. ")
else:
print("Není to palindrom.")

Prvočíslo

"""
prvocislo.py
Vytvoř program, který vyhodnotí, zdali je vložené číslo prvočíslo. Prvočísla mají právě dva dělitele, jsou dělitelná pouze 1 a sami sebou.
"""
cislo = input("Vlož číslo: ")

if cislo.isdigit() and int(cislo) > 0:
cislo = int(cislo)
delitele = []

for i in range(1, cislo + 1):
if cislo % i == 0:
delitele.append(i)
print(f"Dělitelé: {delitele}")

if len(delitele) == 2:
print(f"Číslo {cislo} je prvočíslo.")
else:
print(f"Číslo {cislo} není prvočíslo.")
else:
print("Nebylo zadáno kladné číslo.")

Prvočísla

"""
prvocisla.py
Vytvoř program, který vyhodnotí prvních „x“ prvočísel. Prvočísla ukládej do seznamu a na konci jej vypiš.
"""
x = int(input("Zadej, kolik prvočísel chceš vypsat: "))
cislo = 1
prvocisla = []

while len(prvocisla) < x:
delitele = []
for i in range(1, cislo + 1):
if cislo % i == 0:
delitele.append(cislo)
if len(delitele) == 2:
prvocisla.append(cislo)
cislo = cislo + 1

print(f"Prvních {x} prvočísel je {prvocisla}.")

Automat

"""
automat.py
Vytvoř program, který bude simulovat hrací automat. Ze sady znaků (♥ ♦ ♣ ♠) bude generovat tři náhodné znaky. Doplň bodování, pokud se vygenerují tři stejné znaky, přičtou se body. Po výpisu tří znaků se program uživatele zeptá, zdali chce pokračovat.

Na konec vypiš počet bodů.
"""
import random

seznam = ['♥', '♦', '♣', '♠']

body = 0
kola = 0
pokracovani = "ANO"

while pokracovani == "ANO":
los = []
kola = kola + 1
for i in range(0, 3):
los.append(random.choice(seznam))
print(los
)
if los[0] == los[1] == los[2]:
print("Shoda 3 znaků.")
body = body + 1
else:
print("Není shoda.")
pokracovani = input("Pro pokračování napiš \"ano\": ")
pokracovani = pokracovani.upper()

if kola > 0:
print(f"Hrál/a jsi {kola} kol.")
print(f"Získal/a jsi {body} bodů.")

Bingo

"""
bingo.py
Zahrajeme si zjednodušené bingo. Hrací pole 5 × 5 naplň čísly 1–75 (vždy po pěti číslech ze skupin: 1–15, 16–30, 31–45, 46–60 a 61–75); buď je zadá uživatel, nebo je náhodně vygeneruj. Vylosuj 25 náhodných čísel 1–75, kontroluj, zdali se tvůj tip shoduje s losovanými čísly.
Nakonec vypiš počet shodných čísel.
"""
import random

zacatek = 1
konec = 15

hrac = []

for i in range(0, 5):
for j in range(0, 5):
cislo = random.randint(zacatek, konec)
while cislo in hrac:
cislo = random.randint(zacatek, konec)
hrac.append(cislo)
print(f"{cislo:>4}", end = "")
zacatek = zacatek + 15
konec = konec + 15
print()

print("\n-----------------------\n")

bingo = []
for i in range(0, 25):
cislo = random.randint(1, 75)
while cislo in bingo:
cislo = random.randint(1, 75)
bingo.append(cislo)
print(f"{cislo:>4}", end = "")
if (i + 1) % 5 == 0:
print()

print("\n-----------------------\n")

shoda = []
for cislo in bingo:
if cislo in hrac:
shoda.append(cislo)

if len(shoda) > 0:
print("Gratulujeme k výhře!")
print(f"Shoda v {len(shoda)} číslech.")
print(f"Výpis: {shoda}.")
else:
print("Bohužel jsi nevyhrál/a.")

Dvojice

"""
dvojice.py
Losuj dvojice dívek a chlapců do školních lavic. Jména se nesmí opakovat (Maruška nemůže sedět zároveň s Jeníkem a Péťou). Měj dva stejně dlouhé seznamy, v jednom dívky, ve druhém chlapce. Seznamy náhodně zamíchej a vypiš dvojice dívka–chlapec (vždy [0] index z jednoho seznamu a k němu [0] index ze druhého atd.).
"""
import random

divky = ["Maruška", "Anička", "Petra", "Terezka", "Miška"]
chlapci = ["Tom", "Jeník", "Petr", "Kubík", "David"]

random.shuffle(divky)
random.shuffle(chlapci)

for i in range(0, len(divky)):
print(f"{i + 1}. lavice: {divky[i]} + {chlapci[i]}")

Tombola

"""
tombola.py
K cenám tomboly losuj jméno osoby, která cenu vyhrává. Měj dva seznamy: ceny tomboly (postupně procházej ceny od poslední po první) a seznam osob. K ceně tomboly náhodně vybírej ze seznamu osob.
"""
import random

ceny = ["auto", "kolo", "popelnice", "poukaz", "víno", "pivo"]
lide = ["Adam", "Božena", "Cecílie"]

zacatek = len(ceny) - 1
konec = -1
krok = -1

for i in range(zacatek, konec, krok):
vyherce = random.choice(lide)
print(f"Cenu {ceny[i]} vyhrává {vyherce}.")

Dárkomat

"""
darkomat.py
Blíží se Vánoce a každý ve firmě přichystá pozornost pro jednoho kolegu. Nesmí se stát, že by dával dárek sám sobě. Vypisuj, kdo komu připraví dárek na vánoční večírek. Připrav si dva identické seznamy osob ve firmě. Využívej příkaz pro smazání položky ze seznamu.
"""
import random

lide = ["Adam", "Bob", "Cirda", "Dana", "Eva", "Fanynka", "Gusťa"]
kopie = lide.copy()

for clovek in lide:
proKoho = random.choice(kopie)
while proKoho == clovek:
proKoho = random.choice(kopie)
print(f"{clovek} připraví dárek pro {proKoho}.")
kopie.remove(proKoho)

Zaujal Tě tento online kurz?

Přihlásit k newsletteru

Projekt online vzdělávání byl realizován v rámci Stipendia Czechitas v projektu: „Ženy do IT“ (reg.č. CZ.03.1.51/0.0/0.0/16_061/0003268), který je financován z prostředků Evropského sociálního fondu prostřednictvím Operačního programu Zaměstnanost.