
Rozezvučte Python
Co má Mario společného se zvuky a Pythonem? Melodie z této populární hry vás upozorní na dokončení programu nebo na chybu.
To vše díky malé knihovně Chime, která umí přehrávat zvuky. A nejen ze hry Mario.
Šikovná upozornění
Určitě to znáte.
Pustíte skript v Pythonu a nevíte přesně, za jak dlouho skončí. Přepnete do jiné aplikace a pracujete v ní. Mezitím se občas přepnete zpátky (Ctrl-Tab, Cmd-Tab), abyste zkontrolovali, jestli už skript skončil.
Přepínání se několikrát opakuje a vás to nebaví. Chcete se nějak dozvědět, jestli skript skončil úspěšně nebo jestli v průběhu havaroval.
Šikovná upozornění
Přesně pro tyto účely se hodí malá knihovna chime. Ta má na starosti jen jednu jedinou věc - přehrávat zvuky.
Díky tomu můžete používat zvuková oznámení v Pythonu. Snadno.
Instalace
Knihovnu nainstalujete pomocí jednoduchého příkazu pip, který je nejrozšířenějším správcem Python balíčků.
pip install chime
Pokud používáte správce balíčků conda, použijte následující příkaz:
conda install chime
Poznámka: musíte mít povolený kanál conda-forge.
Začínáme
Knihovna chime není nijak komplikovaná. Spíše naopak.
# Import knihoven, které budete používat
import chime
import time
Pro začátek si vystačíte s pouhými 4 funkcemi, které přehrávají zvuková oznámení.
Informace
chime.info()
Úspěch
chime.success()
Varování
chime.warning()
Chyba
chime.error()
Zvuky v akci
Zkuste si pustit následující program, který poběží 3 vteřiny. Na konci se přehraje zvukové oznámení.
print('Tohle bude trvat 3s ...')
for i in range(1,4):
print('...', i)
time.sleep(1)
print('Hotovo!')
chime.success()
Zvuková témata
Pokud by vám výchozí zvukové téma, které se jmenuje chime, přišlo příliš fádní, můžete si ho snadno změnit.
chime.theme('mario')
chime.success()
Jak už bylo zmíněno v úvodu, chime obsahuje zvuky z populární herní plošinovky Mario.
Tento typ oznámení se vám nelíbí? Zvolte jiné téma!
Všechny zvuky, všechna témata
Pokud si chcete poslechnout všechny zvuky obsažené ve všech tématech, vyzkoušejte následující kód:
zvuky = [chime.info, chime.success, chime.warning, chime.error]
for zvukove_tema in chime.themes():
chime.theme(zvukove_tema)
for zvuk in zvuky:
print(f"{zvukove_tema}: {zvuk.__name__}")
zvuk(sync=True) # Python počká, až se zvuk přehraje celý
Synchronní či asynchronní
Určitě jste si v předchozím příkladu všimli parametru sync=True.
Standardně je tento parametr nastaven na False a znamená, že se zvuk přehrává asynchronně.
Neboli, že se zvuk začne přehrávat, ale Python nečeká na jeho ukončení a pokračuje dál.
V předchozím příkladu naopak chceme, aby se zvuky přehrávaly postupně a aby jeden nejdřív skončil, než se začne přehrávat další.
Proto je nastaven parametr na sync=True.
Vlastní zvuky
Chcete si vytvořit vlastní zvuková témata? Není nic snazšího.
Stačí jen najít adresář, kam se knihovna chime nainstalovala.
Např. pomocí:
chime.__file__
/Users/username/miniconda3/envs/python/lib/python3.9/site-packages/chime.py
V tomto adresáři najdete adresář themes, kde vytvoříte novou složku a nahrajete do ní následující 4 soubory:
error.wavinfo.wavsuccess.wavwarning.wav
Název složky je zároveň názvem zvukového tématu.
Kouzla v Jupyteru
Pokud používáte Jupyter Notebook, budou se vám určitě hodit magické příkazy, které obstarají práci za vás.
Pokud spuštění buňky skončí úspěšně, automaticky se přehraje chime.success().
Pokud se vyskytne chyba, dozvíte se o ní díky chime.error().
To je hodně pohodlné.

Stačí jen načíst jupyter rozšíření...
%load_ext chime
... a použít na začátku buňky magic command.
%%chime
Vyzkoušejte si vše s následujícími příklady.
Nejdřív si napište jednoduchou funkci:
def tahle_funkce_bude_dlouha(pocet=3):
"""Funkce, která chvíli spí"""
print(f"Tohle bude trvat {pocet}s...")
for i in range(1,pocet+1):
print('...', i)
time.sleep(1)
print('Hotovo!')
Toto skončí dobře:
%%chime
tahle_funkce_bude_dlouha(3)
A toto skončí s chybou:
%%chime
tahle_funkce_bude_dlouha('XYZ')
Mohlo by vás zajímat
Blog

Brzdí vás Excel? Vlastní datové aplikace rychle a bez programátorů.

Jak vytváříme jednoúčelové aplikace s pomocí AI

Aritmetický průměr vs. medián
Data Apps

Lineární kalendář

Dokumenty do Markdownu

Převod řeči na text
Kurzy

Python - základy

Statistika v Excelu. Krok za krokem.

Excelentní Triky 1

Python pro každý den

IT je taky pro holky!


