You are on page 1of 17

Bloque II

Experimentamos con las notas. Herramientas musicolgicas avanzadas

Introduccin a Python
[5.1] Cmo estudiar este tema?
[5.2] Introduccin
[5.3] Instalacin
[5.4] Variables
[5.5] Listas
[5.6] Recursin y condicionales
[5.7] Funciones

TEMA

[5.8] Resumen

TEMA 5 Esquema

2
Funciones

Condicionales

Recursin

Listas

Variables

Instalacin de Python

Introduccin a Python

Matemticas y Fsica Aplicadas a la Msica

Esquema

Matemticas y Fsica Aplicadas a la Msica

Ideas clave
5.1. Cmo estudiar este tema?
Hay bastante informacin online respecto a este tema. Sugerimos descargar el manual
Python

para

todos

de

Ral

Gonzlez

Duque.

Recuperado

de

http://mundogeek.net/tutorial-python/ y el tutorial de Python de Guido van Rossum.


Recuperado de http://docs.python.org.ar/tutorial/pdfs/TutorialPython2.pdf
Con este tema comenzamos el bloque II dedicado a herramientas musicolgicas
avanzadas. En este primer tema nos adentraremos en el lenguaje de programacin
Python de una forma accesible a cualquiera no experto en programacin. Hemos elegido
Python por su sencillez y sus libreras adaptadas al clculo musicolgico.

5.2. Introduccin
Python es un lenguaje de programacin creado por Guido van Rossum a principios
de los aos 90. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que
favorece un cdigo legible.
Ral Gonzlez Duque comenta en su libro que Python es un lenguaje que todo el mundo
debera conocer. Posiblemente la afirmacin resulte un tanto exagerada, pero su
utilidad cientfica y musical es innegable. Sus principales ventajas frente a otros
lenguajes son que su sintaxis es simple, clara y sencilla y cuenta con una gran cantidad
de libreras disponibles. En general desarrollar una aplicacin en Python de complejidad
media es ms sencillo y rpido que en lenguajes como Java o Csharp.

5.3. Instalacin
Python se puede instalar en cualquier plataforma, pero vamos a comentar la
instalacin en Windows por ser la plataforma ms utilizada. En cualquier caso si el
alumno posee otro tipo de sistema operativo, es perfectamente posible.

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Para descargar la ltima versin hay que ir a https://www.python.org/download/ y bajar


la versin 2.7.7 (no

descargar la

versin

3.4.1

por

problemas

de

incompatibilidad con Music21).


Como IDE o entorno de programacin hay muchos, pero vamos a escoger uno bastante
sencillo de instalar y usar como es PyScripter. Se puede descargar de
https://code.google.com/p/pyscripter/downloads/list
La instalacin es muy sencilla (sigue los pasos del instalador) y una vez abierto, el
programa tiene el siguiente aspecto.

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Para comprobar que todo est instalado correctamente, borra todo el texto de la pantalla
principal, escribe:
print Hola Mundo
y pulsa el botn verde de ejecutar de la barra de herramientas.
El resultado debe ser el siguiente si todo ha sido instalado correctamente:

Para proyectos complejos resultan mucho ms recomendables otros entornos como


PyDev en eclipse, pero para una introduccin a la programacin PyScripter puede ser
ms sencillo en primera instancia. Si el alumno quiere instalarse y trabajar con PyDev,
puede ir a http://pydev.org/ y seguir las instrucciones de instalacin.

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

5.4. Variables
No vamos a describir en detalle el tipo de variables que Python puede manejar,
simplemente vamos a poner algunos ejemplos y su salida.
Ejemplo simple de suma de dos variables:

El resultado obviamente es 7. Asignamos a c el valor de a + b e imprimimos b.

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Si sumamos 2 cadenas de texto el resultado ser la concatenacin de 2 strings:

Pero si intentamos hacer lo siguiente, sumando enteros y caracteres el sistema


obviamente da error:

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

5.5. Listas
Las listas son conjuntos de valores separados por comas. Para definir una lista
simplemente define los valores:
a = ['pan', 'huevos', 100, 1234]
Si ejecutamos el siguiente programa:

El resultado ser:

OJO, el primer valor de la lista es 0 y no 1.


Comprubalo con el siguiente programa:

Salida:

Veamos ahora algo ms musical, vamos a jugar con la escala. Escribe el siguiente
programa:

El resultado, como es obvio:

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Imaginemos que ahora necesito coger las notas del acorde de Do en nuestra lista sern
las notas 0, 2 y 4 (CEG). Juguemos ahora con esas 3 notas y definamos una segunda lista
solo con estas notas.

El resultado

El mtodo append permite aadir un nuevo valor a una lista.


El smbolo # es un comentario. Esa lnea en verde no se interpreta, puedes poner lo
que quieras.

5.6. Repercusin y condicionales


Otra forma de tomar valores de una lista puede ser iterar sobre ellos o ir paso a paso.
Veamos el siguiente programa:

TEMA 5 Ideas clave

Matemticas y Fsica Aplicadas a la Msica

Resultado:

NOTA: cuidado con los puntos: detrs de escala que son necesarios y la indentacin o
tabulacin (tabulacin para print).
Vamos a hacer el ejemplo anterior de Do Mayor pero con iteracin y condicionales:

Resultado:

IMPORTANTE a tener en cuenta:

Es un condicional con 3 posibilidades que quiere decir si la nota es C o E o G. Es


importante darse cuenta que IGUAL (=) en los condicionales se pone con DOBLE IGUAL
(==) y al final: dos puntos (:) e indentacin en la lnea siguiente.
NOTA: la indentacin es fundamental en Python. Todo lo que est en la misma
tabulacin pertenece al mismo bloque.

TEMA 5 Ideas clave

10

Matemticas y Fsica Aplicadas a la Msica

5.7. Funciones
Vamos a complicar algo ms este tema. Ahora necesitamos establecer un sistema en el
que dado una nota nos devuelva la nota del intervalo especificado. Esto es, si queremos
una 5 desde C (do) ser G (sol). Para esto definimos una funcin getInterval con dos
parmetros: nota de origen y el intervalo. Las funciones permiten escribir un cdigo ms
limpio y encapsular los algoritmos en una caja con parmetros de entrada y salida.
Veamos el cdigo:

El resultado:

Lo ms importante de recordar de toda funcin es:


Las funciones en Python se definen con def.
Los parmetros de entrada estn entre parntesis ().
Los parmetros de salida a travs de return.

5.8. Resumen
En este captulo hemos visto una introduccin a Python a modo de tutorial. Muchos de
vosotros habris visto lenguajes de programacin con anterioridad (Logo o Netlogo son
los ms habituales).

TEMA 5 Ideas clave

11

Matemticas y Fsica Aplicadas a la Msica

En caso de no ser as, os recomiendo repasar los manuales citados anteriormente,


especialmente los captulos de variables, recursin, condicionales y funciones. La
asimilacin de este tema es fundamental para entender los temas venideros.

TEMA 5 Ideas clave

12

Matemticas y Fsica Aplicadas a la Msica

Lo + recomendado
No dejes de leer
Python para principiantes
Es un recurso online en castellano para aprender Python. Te
recomiendo leer los captulos 2, 3 y 4.

Accede al libro a travs del aula virtual o desde la siguiente direccin web:
http://librosweb.es/libro/python/

No dejes de ver
Tutorial Python
Hay bastantes ejemplos online en Python. Hay
un tutorial en youtube muy fcil de seguir en
castellano. Aqu usan Aptana Studio 3 pero es
muy similar a usar PyScripter.

Accede al vdeo a travs del aula virtual o desde la siguiente direccin web:
https://www.youtube.com/watch?v=OtJEj7N9T6k

TEMA 5 Lo + recomendado

13

Matemticas y Fsica Aplicadas a la Msica

+ Informacin
Bibliografa
La bibliografa de Python es amplsima. Algunos libros recomendados pueden ser:
Knowlton, J. (2009). Python. CrearModificarReutilizar. Anaya Multimedia.
Wrox.
Lutz, M. (2009). Learning Python. OReilly Media. Recuperado de
http://my.safaribooksonline.com/9780596805395?portal=oreilly&cid=orm-catreadnow-9780596805395

TEMA 5 + Informacin

14

Matemticas y Fsica Aplicadas a la Msica

Actividades
Trabajo: Python
En esta actividad te vamos a pedir que realices un programa en Python muy sencillo para
evaluar tu conocimiento y asimilacin en la materia.
Crea una funcin en Python en la que dada una nota te devuelva la siguiente en la escala.
Si la nota es B te diga has llegado a la ltima nota. La funcin a implementar se debe
llamar getNextNote() y no tiene parmetros de entrada. (0.5p).
El documento a entregar es:
Fichero en Python con el nombre act2_Nombre_Apellido1.py donde debes
reemplazar Nombre y Apellido1 por tus datos.

TEMA 5 Actividades

15

Matemticas y Fsica Aplicadas a la Msica

Test
1. El siguiente programa en Python imprime:

A. 6.
B. 2.
C. 8.
D. 62.
E. error porque no es un string.
2. El siguiente programa en Python imprime:

A. 3.
B. F.
C. E.
D. ['C', 'D', 'E', 'F', 'G', 'A', 'B'].
E. error.
3. El siguiente programa en Python imprime (ojo, la tercera lnea es diferente de la
pregunta 2):

A. 3.
B. F.
C. E.
D. ['C', 'D', 'E', 'F', 'G', 'A', 'B'].
E. error.

TEMA 5 Test

16

Matemticas y Fsica Aplicadas a la Msica

4. El siguiente programa en Python imprime:

A. 2.
B. 3.
C. E.
D. ['C', 'D', 'E', 'F', 'G', 'A', 'B'].
E. error.
5. El siguiente programa en Python imprime:

A. 0.
B. D.
C. C.
D. ['C', 'D', 'E', 'F', 'G', 'A', 'B'].
E. error.

TEMA 5 Test

17

You might also like