Slides Python
Slides Python
David Aroesti
1. Básicos del lenguaje
¿Qué es la programación?
● Ciencias de la computación
○ Matemáticas
○ Ingeniería
○ Ciencia
● La habilidad más importante: resolver problemas
¿Qué es la programación?
● Objetivos:
○ Aprender a pensar como un Científico del cómputo
○ Aprender a utilizar Python
○ Entender las ventajas y desventajas de Python
○ Aprender a construir una aplicación de línea de comandos
1. Básicos del lenguaje
¿Por qué programar con Python?
● Comunidad
● Facilidad de uso
● Librerías
● Popularidad
● Industria
1. Básicos del lenguaje
1. Básicos del lenguaje
Operadores matemáticos
● +
● -
● /
● //
● %
● *
● **
Operadores matemáticos
● +=
● -=
● /=
● //=
● %=
● *=
● **=
1. Básicos del lenguaje
Variables y expresiones
● Variables
○ Pueden contener números y letras
○ No deben comenzar con número
○ Múltiples palabras se unen con _
■ multiple_words
○ No se pueden utilizar palabras reservadas
Variables y expresiones
Variables y expresiones
● Orden de operaciones:
○ Parentesis
■ Exponente
● Multiplicación
● División
○ Adición
○ Substracción
● PEMDAS
Variables y expresiones
other_function(sum_two_numbers(3, 4))
Funciones
● También podemos definir ejecuciones alternas con los keywords elif y else
○ if x > y:
do_something()
elif:
do_something_else()
else:
execute_if_no_other_conditions_are_true()
2. Uso de strings y ciclos
Strings en python
● Las cadenas (strings) es un tipo con comportamiento diferente a los int, float
y bool
○ Las cadenas son secuencias
○ Las secuencias se pueden acceder a través de un índice
■ apple = ‘apple’
apple[1]
● Las cadenas (al igual que otras secuencias) tienen una longitud
○ Para saber la longitud de una secuencia, se puede usar la función len
■ len(apple)
● En Python, los caracteres que componen un string se reutilizan a lo largo del
programa
○ Esto ayuda a reducir la cantidad de memoria que necesita el programa
○ También significa que las strings deben ser inmutables
■ x = ‘a’
y = ‘b’
id(x) == id(y)
2. Uso de strings y ciclos
Operaciones con strings
● Los strings tienen varios métodos que nos sirven para manipularlas
● Algunos son:
○ upper
○ lower
○ find
○ startswith
○ endswith
○ capitalize
Operaciones con strings
● Operadores de pertenencia
○ in
○ not in
● Comparaciones entre strings
○ Las comparaciones son lexicográficas
○ Tener cuidado:
■ En Python ‘a’ y ‘A’ son diferentes
2. Uso de strings y ciclos
Slices en Python
● Python tiene una de las sintaxis más poderosas para manipular secuencias
● Esta sintaxis se llama slice (rebanada en español)
○ secuencia[comienzo:final:pasos]
● Ej.
my_name = ‘David’
my_name[0]
my_name[-1]
my_name[0:3]
my_name[::2]
2. Uso de strings y ciclos
For loops
● Al igual que los for loops, los while loops sirven para iterar a lo largo de una
secuencia
● Ej.
def cuenta_regresiva(n):
while n > 0:
print(n)
n -= 1
While loop
● Para ciclar a lo largo de los elementos de una lista, normalmente usamos for
loops
○ Ej.
for student in students:
print(student)
● Si la lista está vacía, el cuerpo del loop nunca se ejecuta
Listas en Python
3. Estructuras de datos
Operaciones con listas
● Los conjuntos (sets) son una colección sin orden que no permite elementos
duplicados
● Los sets se inicializan con la función set
● Para añadir elementos utilizamos el método add
● Y para eliminarlos, el método remove
3. Estructuras de datos
Comprehensions
● List comprehension
○ [element for element in element_list if element_meets_condition]
● Dictionary comprehension
○ {key: element for element in element_list if element_meets_condition}
● Set comprehension
○ {element for element in element_list if element_meets_condition}
3. Estructuras de datos
Búsqueda binaria
import random
random.randint(0, 10)
4. Uso de objetos y módulos
Manipulación de archivos
def lower_case(func):
def wrapper():
# execute code before
result = func()
# execute code after
return result
return wrapper
4. Uso de objetos y módulos
¿Qué es la programación orientada a objetos?
● Los tipos básicos en Python (str, int, bool, etc.) están diseñados para
representar cosas simples
● Cuando necesitamos crear estructuras más complejas (por ejemplo, un
avión), podemos utilizar clases
● La instancia es el objeto concreto con valores reales
4. Uso de objetos y módulos
OOP en Python
● Ejemplo Class
class Airplane:
def __init__(self, passengers, seats, pilots=[]):
self.passengers = passengers
self.seats = seats
self._pilots = pilots
def takeoff(self):
pass
● Ejemplo Inheritance
class Vehicle:
def __init__(self, current_speed):
self.current_speed
class Airplane(Vehicle)
def __init__ …
super().__init__(current_speed=0)
def current_speed():
return ‘{} km/h’.format(self.current_speed)
4. Uso de objetos y módulos
Introducción a Click
try:
airplane.takeoff()
except TakeOffError as error:
airplane.land()
Errores y jerarquía de errores
Errores y jerarquía de errores
5. Programación funcional
¿Qué es la programación funcional?
● Astropy
● Biopython
● Sympy
● Numpy
● Pandas
● Matplotlib
● Scipy
● Sunpy
● Tomopy
6. Python en el mundo real
CLI
● aws
● gcloud
● rebound
● geeknote
6. Python en el mundo real
Aplicaciones web
● Django
● Flask
● Bottle
● Chalice
● Webapp2
● Gunicorn
● Tornado
7. Conclusiones
Python 2 vs 3
● print
● integer division
● unicode
● range y xrange
● input vs raw_input
● raising errors
● handling exceptions
● __future__
● six library
○ https://six.readthedocs.io/
7. Conclusiones
PEPs
● PEP8
○ Python style guide
● PEP257
○ Python docstrings
● PEP20
○ import this
● https://www.python.org/dev/peps/