cisla = [(1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6,36), (7, 49), (8, 64), (9, 81), (10, 100)]
mocniny = dict(cisla)
print(mocniny)
import random
while True:
odpoved = input('Na kolik odpovědí chceš hrát? ')
try:
odpoved = int(odpoved)
break
except ValueError:
print('Musíš napsat celé číslo!')
kdo = []
s_kym = []
co_delali = []
kde = []
kdy = []
proc = []
vsechno = [kdo,s_kym,co_delali,kde,kdy,proc]
for i in range (odpoved):
kdo1 = input ('Kdo? ')
s_kym1 = input ('S kým? ')
co_delali1 = input ('Co dělali? ')
kde1 = input ('Kde? ')
kdy1 = input ('Kdy? ')
proc1 = input ('Proč? ')
print('')
kdo.append(kdo1)
s_kym.append(s_kym1)
co_delali.append(co_delali1)
kde.append(kde1)
kdy.append(kdy1)
proc.append(proc1)
a=random.choice(kdo)
b=random.choice(s_kym)
c=random.choice(co_delali)
d=random.choice(kde)
e=random.choice(kdy)
f=random.choice(proc)
print(a, b, c, d, e, f)
Řešení bez slovníků, ale hlavně takové, kde by nebylo úplně snadné přidat další otázky.
import random
kdo_seznam = []
s_kym_seznam = []
kde_seznam = []
co_delali_seznam = []
proc_seznam = []
for pocet in range(3):
kdo = input('Kdo? ')
kdo_seznam.append(kdo)
s_kym = input('S kým? ')
s_kym_seznam.append(s_kym)
kde = input('Kde? ')
kde_seznam.append(kde)
co_delali = input('Co dělali? ')
co_delali_seznam.append(co_delali)
proc = input('Proč? ')
proc_seznam.append(proc)
print(random.choice(kdo_seznam), 's', random.choice(s_kym_seznam),'v', random.choice(kde_seznam), random.choice(co_delali_seznam), random.choice(proc_seznam))
Řešení, kde přidání, změna či odebrání jakékoli otázky znamená jen změnu na jednom míste v seznamu otázek.
from random import choice
otazky = ['Kdo', 'S kym', 'Co delali', 'Kde']
odpovedi = {}
for otazka in otazky:
odpovedi[otazka] = []
# Alternativní cesta
# odpovedi = {otazka: [] for otazka in otazky}
for otazka in otazky:
while True:
odpoved = input('Zadej odpoved na otazku {}? '.format(otazka))
if not odpoved:
break
else:
odpovedi[otazka].append(odpoved)
veta = ''
for otazka in otazky:
veta = veta + choice(odpovedi[otazka]) + ' '
print(veta)
return
závorkyreturn (n)
je matoucí, správně by mělo být napáno jen return n
return (x, y)
je správně, ale pro jednoduchost můžeme závorky klině vynechat a napsat jen return x, y