Najdi chyby, nejasnosti či nepřesnosti v tomto kódu:
zvire = input("Zadej zvíře: ")
def je_v_seznamu(zvire):
zvirata = ["pes", "kočka", "králík", "had", "andulka", "želva"]
for jmeno in zvirata:
if zvire in zvirata:
return "True"
else:
return "False"
print(je_v_seznamu(zvire))
Po úpravě:
zvirata = ["pes", "kočka", "králík", "had", "andulka", "želva"]
zvire = input("Zadej zvíře: ")
def je_v_seznamu(zvirata, zvire):
if zvire in zvirata:
return True
else:
return False
print(je_v_seznamu(zvirata, zvire))
Je možné tuto funkci ještě zkrátit a zjednodušit?
def je_v_seznamu(zvirata, zvire):
return zvire in zvirata
zvirata = ["pes", "kočka", "králík", "had", "andulka", "želva"]
zvire = input("Zadej zvíře: ")
print(je_v_seznamu(zvirata, zvire))
Další podobná funkce:
def kratke(jmeno = zvirata):
for i in range(len(jmeno)):
if len(jmeno[i]) < 5:
print(jmeno[i])
else:
print(end = "")
return jmeno
zvirata = ["pes", "kočka", "králík", "had"]
kratke(zvirata)
A její přehlednější varianta:
def kratke(seznam):
novy_seznam = []
for zvire in zvirata:
if len(zvire) < 5:
novy_seznam.append(zvire)
return novy_seznam
zvirata = ["pes", "kočka", "králík", "had"]
print(kratke(zvirata))
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_basnickou:
basnicka = soubor_s_basnickou.read()
seznam_versu = basnicka.split("\n") # Rozdělí básničku na jednotlivé verše (řádky) [seznam]
seznam_versu.reverse() # Obrátí pořadí veršů v seznamu
obracena_basnicka = "\n".join(seznam_versu) # Složí zpět seznam na řetězec a mezi verše vloží \n
print(obracena_basnicka)
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_basnickou:
seznam_versu = soubor_s_basnickou.readlines()
for vers in seznam_versu[::-1]:
print(vers, end="")
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_basnickou:
basnicka = soubor_s_basnickou.read()
seznam_versu = basnicka.split("\n") # Rozdělí básničku na jednotlivé verše (řádky) [seznam]
nova_basnicka = [] # Seznam pro novou básničku, která obrácením pořadí slov vznikne
for vers in seznam_versu: # Pro každý verš v originální básničce
slova = vers.split() # Rozdělí verš na slova [seznam]
slova.reverse() # Obrátí pořádí slov
novy_vers = " ".join(slova) # Spojí obrázená slova zpět do řetězce
nova_basnicka.append(novy_vers) # Přidá nový verš do nové básničky
obracena_basnicka = "\n".join(nova_basnicka) # Složí zpět seznam na řetězec a mezi verše vloží \n
print(obracena_basnicka)
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_basnickou:
seznam_versu = soubor_s_basnickou.readlines()
for i, vers in enumerate(seznam_versu):
slova = vers.split()
slova.reverse()
seznam_versu[i] = " ".join(slova)
print("\n".join(seznam_versu))
with open("static/basnicka.txt", encoding="utf-8") as soubor_s_basnickou:
basnicka = soubor_s_basnickou.read()
seznam_slok = basnicka.split("\n\n") # Rozdělí básničku na jednotlivé sloky [seznam]
seznam_slok.reverse()
basnicka = "\n".join(seznam_slok)
print(basnicka)
from random import shuffle
with open("static/basnicka.txt", mode="r", encoding="utf-8") as file:
basnicka = file.read()
# Analýza básničky
pocet_slok = len(basnicka.split("\n\n"))
sloky = basnicka.split("\n")
pocet_versu = len(sloky)
for vers in sloky:
if not vers:
pocet_versu -= 1
# Zásobník slov z původní básně
slova = basnicka.split()
shuffle(slova)
# Tvorba nové básně ze zamíchaných slov
basen = []
while slova:
for radek in range(pocet_versu):
slovo = slova.pop()
try:
basen[radek].append(slovo)
except IndexError:
basen.append(list())
basen[radek].append(slovo)
if not slova:
break
for index, radek in enumerate(basen):
vers = " ".join(radek)
basen[index] = vers
if (index + 1) % (pocet_versu / pocet_slok) == 0:
basen[index] += "\n"
basen = "\n".join(basen)
print(basen)
Jde o techniku řešení problému, při které se svůj problém snažíte vysvětlit někomu (nebo v případě gumové kachny něčemu), kdo programování nemusí vůbec rozumět. Když řešenou problematiku a vaše současné řešení popisujete nahlas, uvědomíte si, co váš program aktuálně dělá a co by dělat měl, což zpravidla vede k vyřešení problému.