0% encontró este documento útil (0 votos)
17 vistas

Intro Python

Este documento presenta una introducción a Python. Explica que Python es un lenguaje de programación de alto nivel, multiplataforma e interpretado que es útil para la ciencia computacional. También describe Anaconda y Jupyter Notebook, herramientas populares para ejecutar código de Python. Finalmente, introduce conceptos básicos como variables, constantes y tipos de datos en Python.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas

Intro Python

Este documento presenta una introducción a Python. Explica que Python es un lenguaje de programación de alto nivel, multiplataforma e interpretado que es útil para la ciencia computacional. También describe Anaconda y Jupyter Notebook, herramientas populares para ejecutar código de Python. Finalmente, introduce conceptos básicos como variables, constantes y tipos de datos en Python.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

INSTITUTO TECNOLÓGICO DE SANTO DOMINGO

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”

Garri Kasparov (1963)

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.

Aplicaciones de la computación en la ciencia e ingenierı́a


En la ciencia de hoy en dı́a la computación es absolutamente imprescindible, también en
las matemáticas, pero sobretodo en la fı́sica. Con frecuencia sus leyes toman la forma de
ecuaciones diferenciales, o bien ordinarias para magnitudes dependientes sólo del tiempo, o bien
en derivadas parciales para magnitudes dependientes del espacio y el tiempo, es decir, para
magnitudes descritas por medio de campos.
El trabajo del cientı́fico o ingeniero está ligado a la manipulación de objetos matemáticos
como vectores, matrices, funciones, ecuaciones...y a la realización de cálculos, a menudo complejos.
Por todo esto es fundamental contar con el apoyo de las computadoras para la resolución de
modelos en ciencia e ingenierı́a.
La computadoras realizan de forma eficiente las tareas que se le indican, ya que poseen
una gran capacidad de cálculo. En cambio, no tienen capacidad de análisis, por lo que las
„
El famoso fı́sico Ernest Rutherford dijo una vez ”Toda la ciencia es o fı́sica o colección de sellos”, y el gran
matemático David Hilbert decı́a que ”la fı́sica es demasiado difı́cil para los fı́sicos”, por la complejidad de las
herramientas matemáticas necesarias en diversos campos de la fı́sica.

Javier Garcı́a Maimó, PhD


2 Introducción a python

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.

Los números binarios


El sistema de números binarios es un sistema posicional con base 2, ya que se emplean
solamente los números 1 y 0. Para convertir un número decimal en binario hay que dividir el
número entre dos sucesivamente y tomar los valores de los restos. Por ejemplo (12)10 → (1100)2 .
Para convertir de binario a decimal hay que multiplicar
los dı́gitos en binario por 2p donde p es la posición del
dı́gito 0 × 20 + 0 × 21 + 1 × 22 + 1 × 23 = 12. Para convertir
decimales con parte decimal a binario se multiplica el
número sucesivamente por 2 y se va guardando la parte
entera 0.625 → 0.101. Existen fracciones decimales que
tienen una representación infinita al convertirse a binario
0.65 → 0.101001 . . . La limitación de la cantidad de
memoria en las computadoras para representar los números produce el conocido como error
de redondeo.

La representación en punto flotante


Una forma de optimizar la memoria que se destina para almacenar los números es las
computadoras es la representación en punto flotante, una estrategia que consigue optimizar
la memoria asignada a cada tipo de datos. La representación en punto flotante se basa en la
notación cientı́fica normalizada, en la que un número se representa de la forma m × be , donde
m es la mantisa, b la base (usualmente 10), y e el exponente. Por ejemplo el número 3840 se
expresa en notación cientı́fica como 3.84 × 103 „ .
La implementación de un sistema numérico de punto flotante en las computadoras es similar
al que se acaba de describir, con una diferencia: la cantidad de memoria es finita, por lo que sólo
se pueden representar números con un número finito de dı́gitos. Para una longitud de palabra
de 32 bits la distribución del espacio es la siguiente:

Signo del número real x 1 bit


Signo del exponente e 1 bit
Exponente (entero |e|) 7 bits
Mantisa (número real |m|) 23 bits

¿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.

Javier Garcı́a Maimó, PhD


3 Introducción a python

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.

Anaconda y Jupyter notebook


Anaconda es una distribución de Python que incluye paquetes que se usan con frecuencia en
computación cientı́fica. Permite manejar con facilidad proyectos cientı́ficos y es la distribución
que se usará en el curso. Se trata de un proyecto de código abierto, que se puede descargar de
forma gratuita en https://www.anaconda.com/.

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.

Javier Garcı́a Maimó, PhD


4 Introducción a python

Para ejecutar el contenido de una celda se pulsa SHIFT+INTRO

Se pueden introducir celdas de texto no ejecutable (o markdown mode) presionando la tecla


ESC seguida de la letra M o bien seleccionando la opción Markdown del menú Cell/CellType.
Las celdas de este tipo sirven para dar formato al notebook. En este tipo de celdas se pueden
introducir tı́tulos usando #, listas con -, y también ecuaciones en formato LATEX.

Al ejecutar las celdas se obtiene:

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

Javier Garcı́a Maimó, PhD


5 Introducción a python

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.

Es posible obtener ayuda sobre el uso de funciones usando el comando ?

Javier Garcı́a Maimó, PhD


6 Introducción a python

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

Javier Garcı́a Maimó, PhD


7 Introducción a python

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.

9. Investigar el modulo Crypto para:

(a) Determinar si el residuo de dividir 89 entre 18 es primo o no.


(b) Determinar el máximo común divisor de 14 y 35.

„
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.

Javier Garcı́a Maimó, PhD


8 Introducción a python

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:

ˆ Lenguajes de programación (Python, PHP, Pearl, C...)


ˆ Lenguajes de especificación (UML)
ˆ Lenguajes de consulta (SQL)
ˆ Lenguajes de marcas (HTML, XML)
ˆ Protocolos de comunicaciones (HTTP, FTP)

2. Lenguaje de programación: es un lenguaje informático, diseñado para expresar órdenes


e instrucciones precisas, que deben ser llevadas a cabo por una computadora. El mismo
puede utilizarse para crear programas que controlen el comportamiento fı́sico o lógico de
un ordenador. Está compuesto por una serie de sı́mbolos, reglas sintácticas y semánticas
que definen la estructura del lenguaje.

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.

4. Lenguaje interpretado: a diferencia de los lenguajes compilados, no requieren de un


compilador para ser ejecutados sino de un intérprete. Un intérprete, actúa de manera casi
idéntica a un compilador, con la salvedad de que ejecuta el programa directamente, sin
necesidad de generar previamente un ejecutable. Ejemplo de lenguajes de programación
interpretados son Python, PHP, Ruby, Lisp, entre otros.

5. Tipado dinámico: un lenguaje de tipado dinámico es aquel cuyas variables, no requieren


ser definidas asignando su tipo de datos, sino que éste, se auto-asigna en tiempo de
ejecución, según el valor declarado.

6. Multiplataforma: significa que puede ser interpretado en diversos Sistemas Operativos


como GNU/Linux, Windows, Mac OS, Solaris, entre otros.

7. Multiparadigma: acepta diferentes paradigmas (técnicas) de programación, tales como


la orientación a objetos, aspectos, la programación imperativa y funcional.

8. Código fuente: es un conjunto de instrucciones y órdenes lógicas, compuestos de algoritmos


que se encuentran escritos en un determinado lenguaje de programación, las cuales deben
ser interpretadas o compiladas, para permitir la ejecución del programa informático.

9. IDE: Integrated development environment o entorno de desarrollo integrado, es una


aplicación que facilita el desarrollo y depuración del código.

Javier Garcı́a Maimó, PhD

También podría gustarte