Součet a průměr

Teď, když umíte procházet seznam, podívejme se, k čemu se cykly používají nejčastěji. První vzor všechno sečte. Řekněme, že máte ceny věcí v nákupním košíku a chcete znát celkovou cenu:

ceny = [120, 45, 300, 85]
celkem = 0
for cena in ceny:
    celkem += cena
print("Celkem:", celkem)
Celkem: 550

Proměnná celkem sbírá součet. Začíná na 0, protože než cokoli přičtete, je součet nula. V každém průchodu celkem += cena přičte jednu cenu: po prvním průchodu je v proměnné celkem hodnota 120, pak 165, 465 a nakonec 550.

Záleží na tom, kam který řádek patří:

  • celkem = 0 patří před cyklus, aby se provedlo jen jednou. Kdyby bylo uvnitř cyklu, nastavilo by proměnnou celkem v každém průchodu znovu na 0 a na konci by v ní zůstala jen poslední cena, 85.
  • print() patří za cyklus, bez odsazení, kde už je součet hotový. Kdyby byl odsazený uvnitř cyklu, vypsal by každý mezisoučet: 120, 165, 465, 550.

Průměr je součet vydělený počtem hodnot a počet hodnot je délka seznamu:

prumer = celkem / len(ceny)
print("Průměr:", prumer)
Průměr: 137.5

Použijte len(ceny), a ne číslo 4. Když pak do seznamu přidáte další cenu, průměr bude pořád správně. A pamatujte, že / dává vždy desetinné číslo: průměr 40 se vypíše jako 40.0.

Sčítání čísel v seznamu je tak časté, že na ně má Python zkratku, funkci sum() (součet):

ceny = [120, 45, 300, 85]
print(sum(ceny))
550

Proč se tedy učit cyklus? Protože umí víc než sum(). V cyklu sami rozhodujete, co a kdy přičtete, například s pomocí if jen ceny vyšší než 100.

Ještě jedna past: proměnnou nepojmenujte sum. Zápis sum = 0 sice funguje, ale zakryje funkci sum(), kterou má Python připravenou, a pozdější sum(ceny) skončí chybou TypeError: 'int' object is not callable (celé číslo nejde zavolat jako funkci). Proto se proměnná tady jmenuje celkem. Totéž platí pro max, min, len nebo list.

Pokyny

Seznam minuty_cteni obsahuje, kolik minut jste četli v jednotlivých dnech jednoho týdne. Vytvořte proměnnou celkem s hodnotou 0. Pak seznam projděte cyklem for a každou hodnotu přičtěte k proměnné celkem pomocí +=.

Za cyklem vypište součet příkazem print("Celkem:", celkem). Výstup bude Celkem: 280.

Na konci programu vytvořte proměnnou prumer s průměrem, tedy s hodnotou celkem vydělenou délkou seznamu. Vypište ho jako Průměr: 40.0.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

4/11