Logo Studenta

Clase 1 parte 2

¡Este material tiene más páginas!

Vista previa del material en texto

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Optativa 1 TUP: Desarrollo en Python
Introducción 2da parte
Dr. Cristian Martínez
Departamento de Informática
Universidad Nacional de Salta
Agosto, 2019
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Agenda
1 Introducción
E/S
Listas
Matrices
Diccionarios
2 Funciones y Módulos
Introducción
Paso de parámetros
Módulos
3 Excepciones
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción E/S
Ingreso de datos por teclado
x = raw_input()
x = float(raw_input())
x = int(raw_input())
x = raw_input(”ingrese numero: ”)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción E/S
Salida de datos por pantalla
print variable
print ” mensaje ” + str(variable)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Listas
Es una colección de elementos escalares/objetos ordenada por posición.
Las siguientes declaraciones son válidas:
lista=[]
lista=[’hola’,’chau’,’...’,’;’]
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Listas
Operaciones
Contiene: el operador in permite consultar si un elemento está o no
en la lista. Ejemplo: if ’python’ in lista: …
Inserción (al final): para agregar un elemento al final, disponemos del
método append(). El elemento a agregar debe ser pasado por
parámetro. Ejemplo: lista.append(’python’)
Inserción: este método permite insertar un elemento a la lista,
indicando la posición. Ejemplo: lista.insert(0, ’python’) inserta
’python’ en la primera posición.
Borrar: la función del() permite borrar un elemento de la lista,
pasando como argumento su posición. Por ejemplo:
lista=[10,20,30,40,50]
del(lista[1])
Si luego imprimo la lista, no aparece el …
Continúa …
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Listas
Operaciones
Cardinal: la función len() devuelve la cantidad de elementos de una
lista. La misma debe ser pasada como parámetro.
Ordenación: el método sort() permite ordenar elementos de menor a
mayor. También se dispone de reverse(). Si bien ordena elementos
escalares, es posible incluir una keyword para customizar el
ordenamiento.
Operaciones como suma (+) y multiplicación (*) también son aplicables a
listas.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Listas
Comprensión
La comprensión de listas es una construcción sintáctica de Python que
permite declarar una lista a través de la creación de otra.
listaA = [10,20,30,40,50]
listaB = [x for x in listaA if x>30]
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Matrices
Python no posee una estructura de datos específica para manejar datos
organizados en forma matricial (bidimensional).
Sin embargo, se puede crear una lista de lista.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Matrices
matriz = [[1,2,3], [4,5,6], [7,8,9]]
En este caso, el elemento (0,0) de la matriz sería matriz[0][0].
La fila 0 de la matriz sería matriz[0].
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
Es una colección de elementos los cuales son accedidos por una clave
unívoca.
A diferencia de las listas (y tuplas), los diccionarios no cuentan con un
orden específico. No obstante, es iterable y pueden almacenar elementos
de diferentes tipos.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
Los diccionarios pueden inicializarse:
diccionario={}, sin valores
diccionario = {’a’:1, ’b’:2, ’c’:3}, con valores
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
Para acceder a un elemento, debemos usar la clave respectiva.
Ejemplo print(diccionario[’a’]) muestra 1.
Para actualizar un elemento, algo similar. Ejemplo:
diccionario[’a’]=11.
Para añadir un elemento, debemos usar una nueva clave. Ejemplo:
diccionario[’d’]=4.
Para eliminar un elemento, debemos usar la función del(). Ejemplo:
del(diccionario[’d’]).
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
Los métodos para iterar sobre un diccionario son items(), values() y keys().
El primero da acceso a claves y valores, el segundo devuelve valores y el
tercero, claves.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
for k, v in diccionario.items():
print str(k) + print(v)
for k in diccionario.keys():
print str(k)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introducción Diccionarios
Comprensión
De forma similar a listas, los diccionarios también pueden ser creados por
comprensión.
{k:k+1 for k in (10,20,30,40,50)}
{40: 41, 10: 11, 20: 21, 50: 51, 30: 31} ????
La comprensión de diccionarios puede servir para inicializar un diccionario
con un determinado valor, tomando como claves los elementos de una lista.
{clave:1 for clave in [10,20,30,40,50]}
genera {40: 1, 10: 1, 20: 1, 50: 1, 30: 1}
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Introducción
En Programación Estructurada, las funciones son uno de los elementos
más importantes.
Una función es un conjunto de sentencias que puede ser invocada varias
veces durante la ejecución de un programa.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Introducción
Ventajas
Minimización de código
Aumento de legibilidad
Reutilización de código
Facilidad para el mantenimiento de código
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Introducción
Internamente al definir una función, Python crea un nuevo objeto y le
asigna el nombre dado para la función. Una función puede ser asignada a
una variable o ser almacenada en una lista.
La palabra reservada def nos servirá para definir una función, a
continuación debemos emplear un nombre y opcionalmente, una lista de
argumentos.
def test():
print ”hola mundo”
C. Martínez (DI-UNSa)Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Introducción
Para invocar a una función, basta con usar su nombre seguido de
paréntesis (y parámetros actuales si corresponde).
def test():
print ”hola mundo”
test()
En Python, todo módulo es una función. Puede o no devolver
resultados a quien lo invoca.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Paso de parámetros
Las funciones pueden trabajar con parámetros y devolver resultados.
En Python, el paso de parámetros implica la asignación de un nombre a un
objeto. Esto significa que ocurre por valor o por referencia, si los
argumentos son mutables o no.
def test(a,b):
a = 7
b = 3
a = 3
b = 7
test(a,b)
print str(a) + ” ” + str(b)
def test2(lista):
lista[0]=0
lista=[50,40,30,20,10]
test2(lista)
print str(lista)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Paso de parámetros
Valores por defecto y nombres de parámetros
En Python podemos asignar un valor a un parámetro de una función.
Esto significa que si en la llamada a la función, no se asigna un parámetro
actual, se usar el valor por defecto.
def test(a,b=1):
return (a+b)
print test(7)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Paso de parámetros
Número indefinido de parámetros
Python permite definir funciones que acepten un número indefinido de
parámetros si necesidad que todos aparezcan en la cabecera.
Una alternativa sencilla es mediante (*) lo cual permite que los parámetros
actuales pasados a la función los convierta en tupla.
def test3(*items):
for item in items:
print str(item)
test3(5,6,7)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Paso de parámetros
Múltiples valores devueltos por una función
Una característica diferente que ofrece Python es la posibilidad de devolver
una tupla a quien lo invoca. En ciertos casos, esta característica puede
resultar práctica.
def test(a):
return a+5, a / 2
a = 7
b, c = test(a)
print str(b) + print(c)
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Paso de parámetros
Ejercicios
Dada una cadena de texto determine si es o no un palíndromo.
Dada una lista de palabras, devuelva una lista de palabras y
frecuencia respectivamente.
Idem al anterior, pero usando un diccionario.
Desarrolle el Algoritmo de Euclides en forma iterativa y recursiva.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
A medida que el programa crece, más allá de funciones, es necesario
disponer de varios ficheros.
Como mencionamos anteriormente, legibilidad, mantenibilidad, desarrollo
por equipos, son algunos de los beneficios.
Cómo hacemos esto en Python? Mediante módulos.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
Un módulo es un fichero que tiene código Python pudiendo incluir
funciones, clases, variables, etc.
El fichero debe guardarse con extensión .py
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
Para usar un módulo en un programa (o desde otro fichero) se utiliza la
instrucción import.
Una vez importado, se referencia los atributos del módulo como
modulo.atributo.
Se usa import …as para evitar conflictos de nombres al usar el módulo.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
Módulo Random
Este módulo se usa para generar números pseudo-aleatorios.
import random
random.random() # devuelve un real entre [0,1)
random.randint(10,20) # devuelve un entero entre [10,20]
random.seed(a=None) # inicializa el generador
random.choice([…]) # devuelve un elemento de la lista en forma aleatoria
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
Módulo Math
Este módulo se usa para operaciones matemáticas.
import math
random.fabs(x) # devuelve el valor absoluto de x
random.ceil(x) # devuelve el techo de x (menor entero más grande que x)
random.pow(x,y) # devuelve x**y
random.sqrt(x) # devuelve la raíz cuadrada
Más info en https://docs.python.org/2/library/math.html
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Funciones y Módulos Módulos
Algunos módulos que usaremos
Enviar y recibir emails:
https://docs.python.org/2/library/email-examples.html
Leer, responder tweets: https://pypi.org/project/twitter/
Conectarnos a Mysql: https://pypi.org/project/MySQL-python/
Gráficos con Matplotlib:
https://www.pybonacci.org/2012/05/19/manual-de-introduccion-a-
matplotlib-pyplot-ii-creando-y-manejando-ventanas-y-configurando-la-
sesion/
Conectarnos con Arduino: https://kolwidi.com/blogs/blog-
kolwidi/programa-y-controla-con-python-tu-arduino
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Excepciones
El control de excepciones es un mecanismo para detectar eventos y
modificar el flujo del programa.
Esto es necesario para que cuando un error ocurra en tiempo de ejecución,
evitemos que Python aborte la ejecución del programa.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Excepciones
Ejemplo
lista=[0,1,2]
print str(lista[10])
Al ejecutar el programa, se muestra el siguiente mensaje IndexError: index
out of range
Qué hacer?
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Excepciones
try:
print str(lista[10])
except IndexError:
print ”Error en acceso a lista.”
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Excepciones
Excepción definida por el usuario
Es posible crear nuestros propios tipos de excepciones (a diferencia de
división por cero, índice fuera de rango, sin conexión a la BD, etc).
Para esto debemos crear una subclase de Exception.
Lo vemos en la próxima unidad: POO
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The End
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
	Introducción
	E/S
	Listas
	Matrices
	Diccionarios
	Funciones y Módulos
	Introducción
	Paso de parámetros
	Módulos
	Excepciones

Continuar navegando