Introducción a Python y bibliotecas Scipy Parte...
Transcript of Introducción a Python y bibliotecas Scipy Parte...
IntroducciónPython: Nociones básicas
Introducción a Python y bibliotecas ScipyParte I
LABIFacultad de Ingeniería de la UBA
Primer cuatrimestre, 2019
1 / 27
IntroducciónPython: Nociones básicas
Plan
1 Introducción¿Qué es Python?¿Por qué Python?Anaconda
2 Python: Nociones básicasVariablesTipos de datosComandos básicosControl de flujoFunciones
2 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Qué es Python?
Lenguaje de programación de propósito general einterpretadoUtiliza tipado fuerte y dinámicoMás simple de leer y mantener que otros lenguajesEn general posee un menor rendimiento que otroslenguajes
3 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Qué es Python?
Lenguaje de programación de propósito general einterpretadoUtiliza tipado fuerte y dinámicoMás simple de leer y mantener que otros lenguajesEn general posee un menor rendimiento que otroslenguajes
3 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Qué es Python?
Lenguaje de programación de propósito general einterpretadoUtiliza tipado fuerte y dinámicoMás simple de leer y mantener que otros lenguajesEn general posee un menor rendimiento que otroslenguajes
3 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Qué es Python?
Lenguaje de programación de propósito general einterpretadoUtiliza tipado fuerte y dinámicoMás simple de leer y mantener que otros lenguajesEn general posee un menor rendimiento que otroslenguajes
3 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Por qué Python?
La popularidad de Python ha ido creciendo a lo largo de losaños, en especial a partir de 2008 con Python 3.0, permitiendoque hoy en día se utilice en varios campos:
Data analytics - Data ScienceAplicaciones en Machine learninge e inteligencia artificialSistemas embebidos - MicropythonProgramación Web - Back end
4 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Por qué Python?
La popularidad de Python ha ido creciendo a lo largo de losaños, en especial a partir de 2008 con Python 3.0, permitiendoque hoy en día se utilice en varios campos:
Data analytics - Data ScienceAplicaciones en Machine learninge e inteligencia artificialSistemas embebidos - MicropythonProgramación Web - Back end
4 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Por qué Python?
La popularidad de Python ha ido creciendo a lo largo de losaños, en especial a partir de 2008 con Python 3.0, permitiendoque hoy en día se utilice en varios campos:
Data analytics - Data ScienceAplicaciones en Machine learninge e inteligencia artificialSistemas embebidos - MicropythonProgramación Web - Back end
4 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Por qué Python?
La popularidad de Python ha ido creciendo a lo largo de losaños, en especial a partir de 2008 con Python 3.0, permitiendoque hoy en día se utilice en varios campos:
Data analytics - Data ScienceAplicaciones en Machine learninge e inteligencia artificialSistemas embebidos - MicropythonProgramación Web - Back end
4 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
¿Por qué Python?
La popularidad de Python ha ido creciendo a lo largo de losaños, en especial a partir de 2008 con Python 3.0, permitiendoque hoy en día se utilice en varios campos:
Data analytics - Data ScienceAplicaciones en Machine learninge e inteligencia artificialSistemas embebidos - MicropythonProgramación Web - Back end
4 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
Anaconda
Es un conjunto de herramientas que incluye interpretesactualizados de los lenguajes Python y R.
Incluye bibliotecas científicas para el análisis de datoscomo numpy, scipy, matplotlib, etc.Incluye el IDE SpyderIncluye Jupyter NotebookPosee un manejador de ambientes de Python
Guía de instalación de Anaconda en linuxhttps://www.digitalocean.com/community/tutorials/how-to-install-anaconda-on-ubuntu-18-04-quickstart
5 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
Anaconda: Spyder
Spyder es un IDE para desarrollo en Python con consolainteractiva y explorador de variables.
6 / 27
IntroducciónPython: Nociones básicas
¿Qué es Python?¿Por qué Python?Anaconda
Anaconda: Jupyter Notebook
Jupyter Notebook es unaaplicación web paradesarrollo colaborativo enPython.Brinda la posibilidad deejecutar código Python deforma remota.Tiene capacidad deescribir fórmulas utilizandoLaTeX
7 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Variables
Definición: Es el espacio de memoria designado para guardarun cierto tipo de información.
Python no requiere definir el tipo de dato de la variable.El tipado dinámico nos permite reasignar una variable de untipo a otra variable de un tipo distinto
8 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Variables
Códigox = 5y = 2.7z = "FIUBA"x = "LABI"x = y
9 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Tipos de datos
Los siguientes tipos de datos son soportados de forma nativapor el intérprete:
Boolean: True, FalseEntero: 3, 15 , -6Punto flotante: 3.14159Cadena de caracteres (String): "Laboratorio ABIerto"
10 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Tipos de datos
Los siguientes tipos de datos son soportados de forma nativapor el intérprete:
Tuplas: Secuencia ordenada (indexada) de elementosinmutable (sus elementos no pueden ser reasignados).(1, 2.3, "LABI")Listas: Secuencia ordenada (indexada) de elementosmutable (sus elementos pueden ser reasignados).[1, 2.3, "LABI"]
En ambos casos se utiliza el operador [] para acceder a ellos.
11 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Tipos de datos
Los siguientes tipos de datos son soportados de forma nativapor el intérprete:
Diccionarios: Colección de pares etiqueta - valores (key -values).{ 1: "LABI", "d": 3.14 }Conjunto: Colección no ordenada (y por lo tanto no puedeser indexada).{1,3,7,2}
12 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Tipos de datos
Código
x = (1 , 5.23 , "LABI")x[0]y = [2 , -4, "LABI", 2.36]y[2]z = { 1: "LABI", "d": 3.14 }z[1]z["d"]v = {1,3,5,0}
¿Qué pasa si tratamos de acceder a un elemento de unconjunto o si se repiten elementos dentro del mismo?
13 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Comandos básicos
Comentarios:’#’ : No se interpreta lo ingresado a continuación delcarácter’###’ : Se utiliza para comentar bloques
Imprimir por pantalla:print() : Compatible con versiones de Python mayores a 3.0print : Utilizada hasta la versión 2.7 de Python
Código
print("LABI")print(22)print "FIUBA"print 3.14
14 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Comandos básicos
Conocer el tipo de una variable: type()
Códigox = 23type(x) # Devuelve ’int’
Conocer la longitud de un string, lista o tupla: len()
Códigox = "FIUBA"len(x) # Devuelve 5y = (1,3,"LABI",2.3)len(y) # Devuelve 4
15 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Comandos básicos
Los tipos enteros y punto flotante aceptan lasoperaciones:
suma: +resta: -multiplicación: *división: /resto: %modulo: abs()redondeo: round()potenciación: ** ó pow()
El operador ’+’ también puede utilizarse con tipos stringpara concatenar.
16 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Control de flujo
Python incluye varías estructuras para controlar el flujo deejecución de un programa según el resultado de evaluar unacondición de tipo boolean. En este curso veremos brevemente:
Sentencia ifSentencia whileSentencia for
17 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Operadores de comparación
Python permite los siguientes operadores para realizaroperaciones de comparación que permiten evaluar unacondición:
Igual: ==No igual: !=Menor que: <Menor o igual que: <=Mayor que: >Mayor o igual que: >=
18 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Operadores de comparación
Código2 == 2 # Devuelve True2 == 3 # Devuelve False2 != 3 # Devuelve True2 < 2 # Devuelve False2 <= 2 # Devuelve True
19 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Operador de pertenencia
El operador in y not in se utilizan para saber si un elementopertenece o no a una lista, tupla, conjunto o diccionario (solopara etiquetas).
Código5 in [1,2,3,4,5] # Devuelve True5 not in [1,2,3,4] # Devuelve True’5’ in (’1’,’2’,’3’,’4’,5) # Devuelve False’5’ in {’1’:10 ,’5’:4} # Devuelve True5 in {1,2,5,7} # Devuelve True
20 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Operador de pertenencia con diccionarios
Códigodicc = {’a’:1, ’b’:2, 3:’c’, 4:’d’}’a’ in dicc.keys()1 in dicc.keys()2 in dicc.values()’e’ in dicc.values()
21 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Sentencia If
Sentencia If: Permite evaluar una condición y que al devolverun valor de tipo boolean se siga un camino u otro.
Códigoif ’condicA’:
# código en caso de que la condición A haya devuelto Trueelif ’condicB’:
# código en caso de que la condición B haya devuelto True..else:
# código en caso de que todas las condiciones anterioreshayan devuelto False
22 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Sentencia While
Sentencia While: Permite ejecutar un conjunto de sentenciasmientras una condición devuelva True
Códigowhile ’condic’:
# sentencias que se ejecuta si la condición devolvió True
23 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Sentencia For
Sentencia For: Permite iterar sobre los elementos de unalista, tupla, diccionario o string.
Códigoelem = [elem1, elem2, elem3, ....elemN]for nombre_var_iterac in elem:
# sentencias que se ejecutan a medida que se itera sobre# la lista. En cada iteración, nombre_var_iterac toma el# valor de un elemento de elem empezando por elem1# y terminando por elemN
24 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Funciones
Definición: Subrutina con un objetivo definido que puede serllamada desde otras partes del algoritmo que seesté programando.
Python no requiere que se informe el tipo de lo quedevuelve la función y los tipos de los parámetros que seingresan.Se requiere una correcta indentación para que la funciónpueda ser interpretada. De otro modo el interpretedevuelve un error.
25 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Funciones
Código
def ’nombre_func’(’param1’, ’param2 = paramValue2’,....):# Código correspondiente a la función# return valor_a_devolver
26 / 27
IntroducciónPython: Nociones básicas
VariablesTipos de datosComandos básicosControl de flujoFunciones
Funciones: Ejemplo
Código
def suma(x= 2, y = 3):return x + y
print(suma(1,9)) # Imprime 10print(suma()) # imprime 5
27 / 27