Está en la página 1de 20

CURSO PROPEDÉUTICO

INTRODUCCIÓN A LA PROGRAMACIÓN
CON PYTHON - CLASE #3
2

OBJETIVOS
▸ Utilizar las estructuras repetitivas y de control, en conjunto con las estructuras
de datos, en la solución de problemas.

▸ Utilizar la programación funcional en la solución de problemas.


3

CONTENIDO
▸ Conjuntos (sets)

▸ Matrices

▸ Funciones

▸ Recursividad
4

CONJUNTOS (SETS)
▸ Es un conjunto de elementos únicos y no ordenados.
Es decir, un set no puede tener dos o más valores
iguales.

▸ Tampoco puede accederse a los elementos a través


de un índice, tal como es las listas o tuplas, ya que se
trata de una colección desordenada de valores

▸ Se puede crear también a partir de un iterable como


una Lista o Tupla
5

CONJUNTOS: OPERACIONES
▸ Intersección A ∩ B se realiza con el operador &

▸ Unión A ∪ B se realiza con el operador |

▸ Diferencia A − B se realiza con el operador – ︎

▸ Complemento A

▸ Diferencia simétrica A ∇B se realiza con el operador ^


6

CONJUNTOS: SUBCONJUNTOS
▸ Los operadores < y <= aplicado sobre conjuntos
significan es subconjunto de, la diferencia ocurre
cuando los conjuntos son iguales
7

CONJUNTOS: MÉTODOS ÚTILES


▸ a.add(x) Añade el elemento x al conjunto a

▸ a.clear() Elimina todos los elementos del conjunto a

▸ a.intersection(b) Devuelve la intersección entre a y b

▸ a.difference(b) Devuelve la diferencia de los dos conjuntos a y b

▸ a.symetric_difference(b) Devuelve la diferencia simétrica de los dos conjuntos a y b

▸ a.discard(x) Elimina el elemento x del conjunto a

▸ a.isdisjoint(b) Devuelve True si la intersección de los dos conjuntos es el conjunto


nulo

▸ a.issubset(b) Devuelve True si a está contenido en b, en caso contrario False

▸ a.issuperset(x) Devuelve True si b está contenido en a, en caso contrario False

▸ a.union(b) Realiza la operación unión de los dos conjuntos


8

CONJUNTOS: COMPRESIÓN
▸ Python soporta la creación de conjuntos mediante
expresiones denominadas comprensiones de
conjuntos

▸ La comprensión de conjuntos también se puede


aplicar a la comprensión de las listas

conjunto = {<expresión> <bucle> <filtro>}

▸ Podemos incluir mas de un bucle en la compresión:

{(i, j, z) for i in range(5) for j in range(5) for z in range(5)}


9

ACTIVIDAD #1
▸ Implementa el producto Cartesiano A × B e imprímelo en consola. Usa
compresión de conjuntos

A = {2,3,4}

B = {1,2}

5 minutos
10

MATRICES
▸ Las matrices no son más que listas(o tuplas) compuestas de otras listas (o tuplas). El
tamaño de cada una de estas listas debe ser el mismo.

▸ A la la cantidad de elementos de la lista principal las llamamos filas y la la cantidad


de elementos de cada una de las filas las llamamos columnas.

▸ Ej: para representar una matriz de 3x3


matrix_3x3 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

‣ Para obtener la cantidad de filas y columnas:

num_filas = len(matrix_3x3) y num_columnas = len(matrix_3x3[0])


11

LA FUNCIÓN ZIP
▸ La función zip toma n número de elementos iterables y
retorna una colección de Tuplas

▸ Una de sus principales ventajas es el ahorro de memoria

▸ Es muy útil para cuando queremos obtener los datos de


una columna en una matriz
12

ACTIVIDAD #2
▸ Escribir un programa que muestre el producto de las siguientes matrices

1 4 7 1 −1 2
( )
A = 2 5 8 y B = 2 −1 2
3 6 9 3 −3 0
13

FUNCIONES: ESTRUCTURA
▸ Una función es un bloque de código que tiene asociado
un nombre, de manera que cada vez que se quiera
ejecutar el bloque de código basta con invocar el
nombre de la función.

def <nombre-funcion> (<parámetros>):

bloque código

return <objeto>
14

FUNCIONES: PARÁMETROS Y ARGUMENTOS


▸ Una función puede recibir valores cuando se invoca a
través de unas variables conocidas como parámetros
que se definen entre paréntesis en la declaración de la
función

▸ En el cuerpo de la función se pueden usar estos


parámetros como si fuesen variables

▸ Los valores que se pasan a la función en una llamada o


invocación concreta de ella se conocen como
argumentos y se asocian a los parámetros de la
declaración de la función
15

FUNCIONES: ARGUMENTOS
▸ Los argumentos se pueden pasar de dos formas:

▸ Argumentos posicionales: Se asocian a los parámetros


de la función en el mismo orden que aparecen en la
definición de la función

▸ Argumentos nominales: Se indica explícitamente el


nombre del parámetro al que se asocia un argumento
de la forma parametro = argumento.
16

FUNCIONES: ARGUMENTOS POR DEFECTO


▸ En la definición de una función se puede asignar a cada
parámetro un valor por defecto, de manera que si se
invoca la función sin proporcionar ningún argumento
para ese parámetro, se utiliza ese valor por defecto.
17

FUNCIONES: ARGUMENTOS INDETERMINADOS


▸ Es posible pasar un número variable de argumentos a
un parámetro.

▸ *parametro: Se antepone un asterisco al nombre del


parámetro y en la invocación de la función se pasa el
número variable de argumentos separados por comas

▸ **parametro: Se anteponen dos asteriscos al nombre del


parámetro y en la invocación de la función se pasa el
número variable de argumentos por pares nombre =
valor, separados por comas
18

FUNCIONES: ÁMBITO DE LOS PARÁMETROS


▸ Si en el ámbito local de una función existe una variable
que también existe en el ámbito global, durante la
ejecución de la función la variable global queda
eclipsada por la variable local y no es accesible hasta
que finaliza la ejecución de la función
19

FUNCIONES RECURSIVAS
▸ Una función recursiva es una función que en su cuerpo
contiene una llama a si misma

▸ Para garantizar el final de una función recursiva, las


sucesivas llamadas tienen que reducir el grado de
complejidad del problema, hasta que este pueda
resolverse directamente sin necesidad de volver a llamar
a la función
20

ACTIVIDAD #3
▸ Escribir una función que reciba un objeto tipo Lista con números enteros
aleatorios y retorne otra lista con sus cuadrados

▸ Escribir una función que convierta un número decimal en binario y otra que
convierta un número binario en decimal

5 minutos

También podría gustarte