V tomto příkladu sice máme funkce, ale ty nejsou příliš užitečné, protože ke svému fungování potřebují množství globálních proměnných.
#Vytvoření prázdného slovníku
slovnik_mocniny = dict()
slovnik_klicu_a_hodnot = dict()
#Uživatel zadá číslo n, n+1 zajistí, že se později vypíše číslo přesně do výše,
#jakou uživatel zadal
n = int(input('Zadej číslo, program vypočítá druhé mocniny od 1 až po toto číslo: '))
n = n+1
#Funkce k úkolu č. 0 - vypíše mocniny až do čísla daného uživatelem
def mocniny():
for x in range(1,n):
slovnik_mocniny[x]=x**2
return(slovnik_mocniny)
#Funkce k úkolu č. 1 - sečte klíče a hodnoty ve slovníku mocniny, přidá je do
#slovníku soucet_klicu_a_hodnot
def soucet_klicu_a_hodnot():
soucet_klicu = sum(slovnik_mocniny.keys())
soucet_hodnot = sum(slovnik_mocniny.values())
slovnik_klicu_a_hodnot = {soucet_klicu, soucet_hodnot}
return slovnik_klicu_a_hodnot
Mnohem lepší přístup:
def mocniny(n):
""" Vytvori slovnik mocnin o velikosti n """
slovnik = {}
for j in range(1, n+1):
slovnik[(j)] = j**2
return slovnik
def soucet_klicu_a_hodnot(slovnik):
""" vrati soucty vsech klicu a vsech hodnot"""
return sum(slovnik.keys()), sum(slovnik.values())
def vypis_slovnik(slovnik):
""" vypise obsah slovniku """
for objekt in slovnik:
print("Klic ", objekt, ", hodnota ", slovnik[objekt], sep='')
print(mocniny(4))
print(soucet_klicu_a_hodnot(mocniny(4)))
print(pocet_znaku("hello world"))
vypis_slovnik(mocniny(4))
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)
seznam = [5] * 6
seznam
seznam[5] = seznam
seznam
seznam[5]
seznam[5][5][5][5]
seznam[5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5]
seznam[5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5]
seznam[5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][5][0]
import requests
response = requests.get("https://yesno.wtf/api")
response.raise_for_status()
data = response.json()
data
data["answer"]
data["image"]
response = requests.get("https://api.adviceslip.com/advice")
response.raise_for_status()
data = response.json()
data
data["slip"]["advice"]
artist = "Queen"
title = "Bohemian Rhapsody"
response = requests.get("https://api.lyrics.ovh/v1/{}/{}".format(artist, title))
response.raise_for_status()
data = response.json()
text = data["lyrics"]
print(text)
location = "551801"
response = requests.get("https://www.metaweather.com/api/location/{}/".format(location))
response.raise_for_status()
data = response.json()
data
for day in data["consolidated_weather"]:
print(day["applicable_date"], round(day["min_temp"], 2), round(day["max_temp"], 2))
app_id = '8206c2a3'
app_key = 'bf9aacede374e4d731fb020edd801642'
language = 'en'
word = 'python'
url = "https://od-api.oxforddictionaries.com:443/api/v1/entries/{}/{}".format(language, word)
response = requests.get(url, headers = {'app_id' : app_id, 'app_key' : app_key})
data = response.json()
data
data["results"][0]["lexicalEntries"][0]["entries"][0]["senses"]
.txt
nikoli .docx