Programando en Python
En el curso estaremos utilizando Anaconda, es una variante de Python que ya tiene instalada todo lo necesario para comenzar.
Python, como cualquier otro lenguaje de programación, necesita de algún tipo de editor de texto para desarrollar el código. Los IDEs (o editores de texto) son herramientas útiles, ya que realizan verificaciones de sintaxis, proveen ayuda sobre funciones/paquetes, etc. Los que usaremos son: PyCharm, Spyder y Jupyter Notebook (Spyder y Jupyter Notebook están pre-instalados en Anaconda).
Una de las ventajas de Python es su ecosistema. Esto se refiere a a la cantidad y variedad de módulos open-source que posee, además de su Standard Library. Algunos módulos que utilizaremos son: numpy, scipy, pandas, matplotlib, statsmodels, xlwings, openpyxl y arch.
Para obtener ayuda acerca de una función o módulo:
import math # Se importa el módulo llamado 'math'
help(math)
Esta función help, está dentro del módulo __builtins__ (versión 3.x), y contiene las funciones básicas como len(), print(), entre muchas: dir(__builtins__)
Cómo funciona Python: Python es un lenguaje interpretado
Lo que implica que nuestros programas son procesados por un intérprete para ser ejecutados. El interprete actúa de intermediario entre nuestro programa y el hardware.
Cuando se escribe un programa .py, y se ejecuta:
1) El código del programa dentro del archivo .py es compilado a bytecode y el bytecode es guardado en un archivo .pyc con el mismo nombre (a través de CPython).
2) El intérprete de Python carga el bytecode del archivo .pyc y lo ejecuta en la Python Virtual Machine.
Organización del código
Un programa de Python consiste de un conjunto de archivos .py que contienen statements.
Siempre existe uno principal (main script) y puede, o no, referenciar módulos, que suelen agruparse en paquetes. Los paquetes son también conocidos como librerías.
Python y los Objetos
La programación en Python se fundamenta en el concepto de objetos.
Un objeto tiene:
1) Identidad: Es un número identificador único (la dirección de memoria en CPython).
2) Tipo / Clase: Describe la representación interna del objeto.
Un objeto no puede cambiar ni su identidad ni tipo. Pero puede ser mutable o inmutable, según si su valor puede ser modificado o no.
Proceso de asignación de una variable (ej. X = 10)
1) Se crea un objeto que represente a 10
2) Se crea, si no existe, la variable X
3) Se vincula el objeto 10 con la variable X
Las variables son simples referencias a objetos. Los objetos son los que poseen tipo; una variable puede entonces referenciar a cualquier tipo de datos. Esto se denomina Dynamic Typing.
Cuando se define una variable a partir de otra (ej. Y = X) la nueva variable referenciará al mismo objeto que la original. Podemos poner un contador que indique cuántas referencias hay afectadas a él.
Cuando un objeto se queda sin referencias, el contador queda en cero y, por tanto, el objeto queda elegible para eliminación o Garbage Collection.
Chequeos de igualdad
Dado el mecanismo de referencias, Python ofrece dos tipos de chequeos comparativos entre variables.
X is Y: Chequea si ambas variables refieren al mismo objeto. Mira si la referencia al objeto por estas variables, es compartida. (Shared reference).
X == Y: Chequea si los objetos referenciados poseen los mismos valores. Pueden o no ser shared reference.
Mutabilidad vs. Inmutabilidad
Los objetos inmutables no aceptan cambios en su valor. Tipo de datos: Int o Tuples.
Los objetos mutables aceptan cambios en su valor. Tipo de datos: List.
X = 1 # Int
Y = X
X = X + 1
print(Y) # 1
print(X) # 2
X = [1, 1, 1] # List
Y = X
X[1] = 5
print(Y) # [1. 5. 1]
print(X) # [1. 5. 1]
Python, como cualquier otro lenguaje de programación, necesita de algún tipo de editor de texto para desarrollar el código. Los IDEs (o editores de texto) son herramientas útiles, ya que realizan verificaciones de sintaxis, proveen ayuda sobre funciones/paquetes, etc. Los que usaremos son: PyCharm, Spyder y Jupyter Notebook (Spyder y Jupyter Notebook están pre-instalados en Anaconda).
Una de las ventajas de Python es su ecosistema. Esto se refiere a a la cantidad y variedad de módulos open-source que posee, además de su Standard Library. Algunos módulos que utilizaremos son: numpy, scipy, pandas, matplotlib, statsmodels, xlwings, openpyxl y arch.
Para obtener ayuda acerca de una función o módulo:
import math # Se importa el módulo llamado 'math'
help(math)
Esta función help, está dentro del módulo __builtins__ (versión 3.x), y contiene las funciones básicas como len(), print(), entre muchas: dir(__builtins__)
Cómo funciona Python: Python es un lenguaje interpretado
Lo que implica que nuestros programas son procesados por un intérprete para ser ejecutados. El interprete actúa de intermediario entre nuestro programa y el hardware.
Cuando se escribe un programa .py, y se ejecuta:
1) El código del programa dentro del archivo .py es compilado a bytecode y el bytecode es guardado en un archivo .pyc con el mismo nombre (a través de CPython).
2) El intérprete de Python carga el bytecode del archivo .pyc y lo ejecuta en la Python Virtual Machine.
Organización del código
Un programa de Python consiste de un conjunto de archivos .py que contienen statements.
Siempre existe uno principal (main script) y puede, o no, referenciar módulos, que suelen agruparse en paquetes. Los paquetes son también conocidos como librerías.
Python y los Objetos
La programación en Python se fundamenta en el concepto de objetos.
Un objeto tiene:
1) Identidad: Es un número identificador único (la dirección de memoria en CPython).
2) Tipo / Clase: Describe la representación interna del objeto.
Un objeto no puede cambiar ni su identidad ni tipo. Pero puede ser mutable o inmutable, según si su valor puede ser modificado o no.
Proceso de asignación de una variable (ej. X = 10)
1) Se crea un objeto que represente a 10
2) Se crea, si no existe, la variable X
3) Se vincula el objeto 10 con la variable X
Las variables son simples referencias a objetos. Los objetos son los que poseen tipo; una variable puede entonces referenciar a cualquier tipo de datos. Esto se denomina Dynamic Typing.
Cuando se define una variable a partir de otra (ej. Y = X) la nueva variable referenciará al mismo objeto que la original. Podemos poner un contador que indique cuántas referencias hay afectadas a él.
Cuando un objeto se queda sin referencias, el contador queda en cero y, por tanto, el objeto queda elegible para eliminación o Garbage Collection.
Chequeos de igualdad
Dado el mecanismo de referencias, Python ofrece dos tipos de chequeos comparativos entre variables.
X is Y: Chequea si ambas variables refieren al mismo objeto. Mira si la referencia al objeto por estas variables, es compartida. (Shared reference).
X == Y: Chequea si los objetos referenciados poseen los mismos valores. Pueden o no ser shared reference.
Mutabilidad vs. Inmutabilidad
Los objetos inmutables no aceptan cambios en su valor. Tipo de datos: Int o Tuples.
Los objetos mutables aceptan cambios en su valor. Tipo de datos: List.
X = 1 # Int
Y = X
X = X + 1
print(Y) # 1
print(X) # 2
X = [1, 1, 1] # List
Y = X
X[1] = 5
print(Y) # [1. 5. 1]
print(X) # [1. 5. 1]
OK
ResponderEliminar