Intro Python
Intro Python
INTRODUCCIÓN A PYTHON
”No hay por qué elegir entre humano y máquina, la mejor combinación es un buen humano y
una máquina”
Ciencia y computación
Desde el inicio de la ciencia los matemáticos y los fı́sicos han tenido una estrecha colaboración,
de hecho, muchas teorı́as matemáticas han aparecido como consecuencia de intentar resolver
problemas en fı́sica.
Por otro lado, el desarrollo de muchas de las nuevas teorı́as en fı́sica no serı́a posible sin
un conocimiento profundo de las matemáticas. A pesar de esto, la relación entre fı́sicos y
matemáticos no siempre ha sido ejemplar .
En los últimos tiempos ha irrumpido con fuerza un nuevo elemento en la discusión: la
computación. De hecho, se ha añadido la fı́sica computacional a las dos divisiones de la
fı́sica preexistentes: la fı́sica teórica y la experimental. La fı́sica computacional permite realizar
una gran cantidad de experimentos que serı́an difı́ciles o imposibles de otra forma.
instrucciones deben ser dadas con la máxima precisión. Las computadoras utilizan el sistema
de numeración binario para representar los números, ya que se puede implementar con
facilidad utilizando fenómenos fı́sicos como la electricidad o el magnetismo.
¿Qué es Python?
Python es un lenguaje informático, de programación, que puede ser clasificado como un
lenguaje interpretado, de alto nivel, multiplataforma, de tipado dinámico y multiparadigma* .
El nombre python viene de los célebres Monty Python, un grupo de comediantes británicos que
se hizo muy popular en los años 70 y 80 del siglo XX.
Se trata de un lenguaje libre y con un estilo simple y fácil de aprender, pero a la vez muy
potente y con numerosas librerı́as que permiten manejar los elementos del cálculo cientı́fico de
forma rápida y eficiente. Se puede obtener más información sobre el lenguaje en www.python.org
Aunque en este caso no es evidente el ahorro de espacio, considerar por ejemplo la forma de escribir el valor
de G = 6.67 × 10−11 sin hacer uso de la notación cientı́fica
*
Al final del capı́tulo se puede ver una pequeño glosario con significado de estos términos.
Aunque en este curso se usará la distribución Anaconda, que incluye diversas librerı́as además
del instalador de python, también es posible descargar el intérprete de python e instalarlo de
manera autónoma. Para comprobar si existe una instalación previa de python se puede abrir
una ventana de comandos y escribir python.
En este caso está instalada la versión 3.7 . Una vez iniciado el intérprete ya se pueden
escribir instrucciones en python (o código) desde la lı́nea de comandos.
Jupyter notebook es una aplicación cliente servidor que permite crear y ejecutar ficheros
de comandos en un navegador web. Ofrece muchas más facilidades que escribir en la lı́nea
de comandos, y a su vez es más ligero que un entorno de desarrollo integrado (IDE). Puede
considerarse un término medio entre usar lı́nea de comandos y usar un IDE. Se instala por
defecto junto con Anaconda .
Para ejecutarlo basta con abrir una ventana de sistema y escribir jupyter notebook. Una
vez abierto iremos a la carpeta de trabajo y crearemos un nuevo notebook, que se abrirá
automáticamente en una nueva pestaña.
python sufrió cambios significativos entre las versiones 2 y 3, todavı́a se puede descargar la versión 2 para
garantizar la compatibilidad hacia atrás, pero para instalaciones nuevas es recomendable usar la versión 3.
Google Colab es una aplicación en la nube que cuenta con un editor con apariencia similar a Jupyter notebook,
aunque algunos detalles pueden diferir, es una opción a tener en cuenta para seguir este curso.
Para salir de Jupyter notebook se puede presionar CTRL+C en la lı́nea de comandos o bien
seleccionar File/CloseandHalt.
Variables y constantes
Una variable no es más que un espacio de memoria con nombre para almacenar datos
modificables. Es conveniente utilizar nombres de variables descriptivos y en minúscula, si es
necesaria más de una palabra se suelen usar guiones bajos, por ejemplo periodo orbital. Los
nombres en mayúsculas se reservan para las constantes* .
*
Python no diferencia variables de constantes por el hecho de usar mayúsculas o minúsculas, cualquier variable
simple es modificable, usar mayúsculas es más una indicación para las personas que leen el código de que ese
valor no deberı́a modificarse. En la práctica se usan mayúsculas por ejemplo con constantes universales, como
G, que en caso de cambiar por error causarı́a errores en todos los cálculos subsiguientes
Las variables básicas en python pueden contener números, texto o valores booleanos.
Al ser un lenguaje de tipado dinámico, se establece por defecto el tipo de variable según el
contenido que se le asigna al crearla. Escribiendo type(var) se puede saber el tipo de variable.
Python permite la asignación múltiple, es decir hacer varias asignaciones de variables en una
única instrucción: a,b,c = ’1’,21,13. Para introducir un comentario se escribe # al inicio
de la lı́nea y el intérprete no la ejecuta. Es conveniente usar comentarios para entender mejor
el propósito de un conjunto de instrucciones.
En computación la sentencia a = a + 1 tiene sentido de asignación, no de igualdad, es
decir, primero se suma 1 al contenido de la variable a y posteriormente se asigna el nuevo valor
a la misma variable a. Aunque para Python los nombres de variable no son más que indicadores
de posiciones en la memoria, usar nombres de variable que tengan sentido aumenta la claridad
del código y reduce el riesgo de errores.
a = 2 base = 2
b = 3 altura = 3
c = a * b /2 area = base * altura /2
Aunque el resultado de las dos ejecuciones es el mismo, es evidente que a la hora de entender
el objetivo de los comandos, la implementación de la derecha es mucho más clara.
Importación de módulos
Muchas tareas cotidianas están implementadas y organizadas en diferentes módulos de
python. Para utilizar una función de un módulo es necesario importarla. Por ejemplo, la
función sqrt pertenece al módulo math.
Se puede importar una función especı́fica del módulo o se puede importar el módulo completo
escribiendo from math import *, o simplemente import math. La diferencia entre estas últimas
dos opciones es que en caso de usar import math es necesario escribir el nombre del módulo
antes de la función.
Para evitar confusiones con funciones con el mismo nombre en diferentes módulos se puede dar
un alias a cada módulo y referenciar las funciones usando el alias.
Anaconda incluye muchas librerı́as útiles, una de ellas es sympy, que contiene numerosas funciones
relacionadas con el cálculo simbólico. Su documentación se puede consultar en www.sympy.org
Funciones anónimas
Una capacidad de muchos lenguajes de programación que también incorpora python, es la
posibilidad de crear funciones anónimas. Las funciones anónimas son una manera de definir,
en una sola lı́nea, funciones que dependen de una o varias variables. En python las funciones
anónimas se definen usando la palabra clave lambda .
Más adelante en el curso se verá como crear funciones más complejas que no se puedan definir en una sola
lı́nea
Actividades
1. Realizar las siguientes operaciones:
√ 711
a) 3 b) cos π c) ln 5 d) 124312 − 5478 · 3 e) 170.4 f)
143
7
1 5+3 e2 4 5π+2 5+6· − 22
g) h) i) j) 23 − k) l) 3
2·3 9−1 3 5+3 4 − log 3 2 3
·
3 3·6
1 x
2. Asignar a una variable x el valor y calcular
5 (x − 1)3
2
3 3
1 5
3. Usar el módulo fractions para obtener los resultados de i) + y ii) 1 + en forma
3 7 5
de quebrado.
4. Escribir un script que dada una cantidad de horas calcule el número de segundos correspondiente.
4
5. Escribir un script que calcule la masa de una esfera dada su densidad y radio m = ρ πr3 ,
3
y utilizarlo para calcular la masa de dos esferas de acero de radios 1 mm y 10 m.
r
l
6. Sabiendo que el periodo de oscilación de un péndulo simple es T = 2π , calcular el
g
periodo de un péndulo de longitud l = 8. Utilizar la función N del módulo sympy para
evaluar el periodo de forma numérica con 30 cifras decimales.
7. Calcular el área de un triángulo definiendo las variables base y altura. Utilizar la función
Symbol del paquete sympy para definir la √ base como 12x y la altura como 2x+5. Encontrar
el área para dos valores de x = 1.75 y 2 utilizando la función subs.
8. Repetir el problema anterior definiendo una función anónima que tenga como variables la
base y la altura.
Para indicar las unidades que se esperan en un script se puede escribir un comentario a la derecha de la
variable, por ejemplo x= 2 # m. Esto no tiene ningún efecto sobre los cálculos y no resuelve el problema de las
unidades, pero es un buen hábito que a menudo evita confusiones.
Glosario de términos
1. Lenguaje informático: es un idioma artificial, utilizado por ordenadores, cuyo fin es
transmitir información de algo a alguien. Dentro de los lenguajes informáticos, se pueden
distinguir:
3. Lenguaje de alto nivel: son aquellos cuya caracterı́stica principal, consiste en una
estructura sintáctica y semántica legible, acorde a las capacidades cognitivas humanas.
A diferencia de los lenguajes de bajo nivel, son independientes de la arquitectura del
hardware, motivo por el cual, asumen mayor portabilidad.