Rozezvučte Python

Zpět na blog

Rozezvučte Python

python jupyter zvuk

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.wav
  • info.wav
  • success.wav
  • warning.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é.

Chime v Jupyteru

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')

Líbil se vám článek? Sdílejte ho s ostatními

nebo nám napište něco hezkého. Děkujeme!

Zpět na blog

Python - základy

Naučte se základy Pythonu - populárního jazyka, který vzal datovou vědu doslova útokem.

Zobrazit kurz

Úvod do jazyka R

Naučte se efektivní datovou analýzu.

Zobrazit kurz

Pandas - analýza a zpracování dat

Naučte se základy Pandas - pythonovské knihovny, která je standardem pro analýzu a zpracování dat.

Zobrazit kurz

Hledáme další autory

Publikujte na Lovely Blogu a inspirujte ostatní! Sdílením svých znalosti si budujete osobní značku.

Kontaktujte nás

Odběr novinek

Novinky, návody a tipy přímo do vašeho emailu.

Copyright © 2018-2024, Colorbee, s.r.o.

Designed by grafikli.cz in Prague.