Odborné články Gymnaziální vzdělávání Python v hudbě: intervaly jako seznam a metody
Odborný článek

Python v hudbě: intervaly jako seznam a metody

3. 3. 2026
Gymnaziální vzdělávání
Autor
Pavel Konrád

Anotace

Pomocí programovacího jazyka Python prozkoumáme možnosti, jak přenášet a kódovat informace, které budeme demonstrovat na hudebních analogiích. Ve třetí aktivitě ze série Python v hudbě si ukážeme, jakým způsobem můžeme pracovat s proměnnými a co je to v Pythonu seznam. Prozkoumáme také další zajímavé možnosti funkce print a metody, jak s ní můžeme pracovat sofistikovaněji.
  • Typ materiálu: cvičení 
  • Škola: gymnázium
  • Ročník: kvarta
  • Metody: výklad
  • Vzdělávací obor: informatika
  • Tematický okruh: data, informace a modelování – kódování a přenos dat 
  • Očekávané výstupy: Rozlišuje a používá různé datové typy. Navrhuje a porovnává různé způsoby kódování z různých hledisek a vysvětlí proces a úskalí digitalizace.
  • Časová dotace:
    • Výuka: 45 minut
    • Příprava: 30 minut
  • Pomůcky, hardware a software
    • Učitel: dataprojektor, výpočetní zařízení (PC, notebook, tablet)
    • Žák: výpočetní zařízení (PC, notebook, tablet)

Zdroje:

  • https://www.w3schools.com/python

Potřebné vstupní znalosti a dovednosti

Oborové

  • Základní orientace v programovacím jazyku Python
  • Znalost proměnných a datových typů

Digitální dovednosti

  • Pokročilé ovládání počítače
  • Schopnost postupovat podle návodu
  • Orientace v základní terminologii algoritmizace a programování

Vzdělávací cíle:

  • Pomocí funkce print poslat na výstup data podle zadaných kritérií
  • Pochopit v praxi různé metody pro přenos dat
  • Uložit do proměnné více hodnot, pomocí seznamu

Přínos využití digitálnícg technologií

Díky seznamům a metodám v programovacím jazyce Python můžeme s daty pracovat mnohem sofistikovanějším způsobem a efektivně je tak třídit podle zadaných kritérií. 

Metodická poznámka

Tato aktivita navazuje na sérii Python v hudbě – skript na akordy. V této aktivitě se demonstrují možnosti, tzv. metody a funkce jazyka Python. V této aktivitě učitel demonstruje možnosti třídění dat podle zadaných kritérií a nechává studenty dělat zápisky použitých metod.

První polovina hodiny:

Učitel vysvětluje, co jsou to seznamy a jak s nimi v Pythonu pracujeme. Vysvětluje, že v jedné proměnné můžeme mít na jednotlivých indexech uloženo více informací.

scale = "c", "c#", "d", "d#", "e", "f", "f#", "g", "g#", "a", "bb", "b"

Demonstruje přímo na funkci print a ukazuje, jak se takový seznam chová.

print(scale)

Rozšiřuje funkci print o hranatou závorku, do které vloží číslo požadovaného indexu, který se má poslat na výstup.

print(scale[1])

Vysvětluje, že na indexu 1 se nachází druhá položka v seznamu, jelikož v programování začíná vše od 0, a názorně předvede.

print(scale[0])

Ukazuje pro zajímavost další možnosti, jak manipulovat s daty.

print(scale[0:5])

print(scale[1+5])

Dále učitel uvede a vysvětlí novou funkci len, kterou si studenti zapíšou do poznámek – co přesně znamená a jaké má využití. Demonstruje ji na příkladu a dbá na to, aby si studenti opsali správnou syntax. Funkci len demonstruje na jednotlivých indexech, které obsahují jeden nebo dva znaky.

print(len(scale[1]))

print(len(scale[0]))

print(len(scale))

V závěru první části hodiny vysvětlí nový pojem „metody“ a vysvětlí, jaký je rozdíl mezi funkcí a metodou a jak takovou metodu nazýváme. Učitel demonstruje nový pojem na metodě index, kterou názorně ukazuje na vytvořeném seznamu v proměnné scale. Upozorní, že index hledá pouze textové řetězce a vrací číslo indexu, na kterém se hodnota nachází.

print(scale.index("d"))

print(scale.index("g"))

Druhá část hodiny:

Učitel zadá samostatnou práci, při níž studenti pracují na vyřešení problému. Pracují s vytvořenými zápisky a zkoušejí je poskládat do správné syntaxe. Studenti hledají postup, jak zjistit rozdíl mezi dvěma tóny. Učitel může úlohu se studenty rozpracovat a vypracování uložit jako domácí úkol.

Zadání:

Vytvoř jednoduchý kód, který bude obsahovat proměnné x a y, které budou reprezentovat uživatelský vstup. Ať zadáš do těchto proměnných jakýkoliv tón ve formátu string, tak program spočítá vzdálenost mezi těmito tóny, uloženými v proměnných x a y.

Budeš k tomu potřebovat deklarovat další proměnné tone1 a tone2, ve kterých následně využiješ metodu index, abys z proměnné scale získal datový typ int. Proměnné tone1 a tone2 budou obsahovat tedy číslo, na kterém indexu se nachází tón zadaný v proměnné x a y.

scale = "c", "c#", "d", "d#", "e", "f", "f#", "g", "g#", "a", "bb", "b"

x = ?

y = ?

tone1 = ?

Postup:

  1. Deklaruj proměnnou x, do které uložíš nějaký tón ve formátu string. Tato proměnná bude představovat uživatelský vstup, který určuje první tón, se kterým bude výpočet pracovat.
  2. Deklaruj proměnnou y, do které uložíš druhý tón ve formátu string. Tato proměnná bude představovat uživatelský vstup, který určuje druhý tón, se kterým bude výpočet pracovat.
  3. Utvoř proměnnou tone1, která načte pozici, na kterém indexu se nachází tón v proměnné x.
  4. Utvoř proměnnou tone2, která načte pozici, na kterém indexu se nachází tón v proměnné y.
  5. Utvoř proměnnou vypocet, do které uložíš způsob, jakým vypočítáš vzdálenost jednotlivých tónů v půltónech. Každý index v seznamu představuje jeden půltón.
  6. Nakonec vytvoř proměnnou vysledek, do které uložíš složený řetězec z těchto hodnot: Mezi tóny (x) a (y) je (vypocet) půltónů.
  7. Pošli proměnnou vysledek na výstup.

Řešení:

x = "c"

y = "g"

tone1 = scale.index(x)

tone2 = scale.index(y)

vypocet = tone2 - tone1

vysledek = "Mezi tóny: ",x, "-", y, "je", vypocet, "půltónů."

Print(vysledek)

Hodnocení:

Student ukládá vytvořený kus kódu do poznámkového bloku a odesílá učiteli na e-mail. Učitel hodnotí, zda:

  • student pochopil rozdílné použití funkce print a zda si zapsal, jak volat metodu index;
  • dokázal vyřešit slovní úlohu.
  • proměnná vysledek obsahuje správnou syntax;
  • student spojil textové řetězce a proměnné do jednoho výstupu.

Úloha 1: Vytvoř jednoduchý kód, který bude obsahovat proměnné x a y, které budou reprezentovat uživatelský vstup. Ať zadáš do těchto proměnných jakýkoliv tón ve formátu string, tak program spočítá vzdálenost mezi těmito tóny, uloženými v proměnných x a y.

Úloha 2: Budeš k tomu potřebovat deklarovat další proměnné tone1 a tone2, ve kterých následně využiješ metodu index, abys z proměnné scale získal datový typ int. Proměnné tone1 a tone2 budou obsahovat tedy číslo, na kterém indexu se nachází tón zadaný v proměnné x a y.

Zkušenosti s použitím materiálu

Toto cvičení je zaměřené na procvičování a praxi. Pakliže máme šikovnou třídu, můžeme výklad zkrátit na nezbytné minimum a nechat veškerou iniciativu na studentech. Pomáháme individuálně s problémy v syntaxi. V opačném případě můžeme naopak postupovat spíš teoreticky a na závěr hodiny s pomocí učitele zkusit napsat kus vlastního kódu. Postup můžeme odkrývat postupně a psát kód v průběhu hodiny se studenty.

Autor
Pavel Konrád

Hodnocení uživatelů

Článek nebyl prozatím komentován.

Váš komentář

Pro vložení komentáře je nutné se nejprve přihlásit.

Zařazení do seriálu:

RVP do 2024

Očekávané výstupy:

Materiály s klíčovým slovem NPO 3.1 DIGI vytvořil tým metodiků v projektu Podpora škol v kontextu digitalizace (Národní plán obnovy 3.1 DIGI) pro podporu pedagogů při ICT revizích.

Další informace, metodické materiály i inspiraci do výuky jednotlivých předmětů i napříč předměty najdete na webu https://digitalizace.rvp.cz/