0% encontró este documento útil (0 votos)
13 vistas19 páginas

Programación Avanzada en Python 2025

El documento proporciona una guía sobre programación avanzada en Python, centrándose en colecciones como tuplas, diccionarios y conjuntos, así como en la definición y uso de funciones. Se incluyen ejemplos prácticos de operaciones con estas colecciones y funciones, incluyendo el uso de parámetros por defecto y funciones lambda. Además, se proponen ejercicios para aplicar los conceptos aprendidos en la gestión de estudiantes y análisis de texto.

Cargado por

tixojo6341
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas19 páginas

Programación Avanzada en Python 2025

El documento proporciona una guía sobre programación avanzada en Python, centrándose en colecciones como tuplas, diccionarios y conjuntos, así como en la definición y uso de funciones. Se incluyen ejemplos prácticos de operaciones con estas colecciones y funciones, incluyendo el uso de parámetros por defecto y funciones lambda. Además, se proponen ejercicios para aplicar los conceptos aprendidos en la gestión de estudiantes y análisis de texto.

Cargado por

tixojo6341
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación Avanzada Python

Primer Semestre 2025/2026 - NRC: 3703

Diego Morales
September 1, 2025
Universidad San Francisco de Quito
Colecciones
Tuplas (tuple)

Características
• Colecciones ordenadas e inmutables
• Más eficientes en memoria que las listas
• Útiles para datos que no deben cambiar
• Pueden contener elementos de diferentes tipos

2
Operaciones con tuplas
1 # Creación
2 coordenadas = (10, 20)
3 colores = ("rojo", "verde", "azul")
4 mezcla = (1, "dos", 3.0, True)
5

6 # Acceso
7 print(coordenadas[0]) # 10
8 print(colores[-1]) # "azul"
9

10 x, y = coordenadas
11 print(f"X: {x}, Y: {y}") # X: 10, Y: 20
12

13 # Métodos
14 print([Link]("rojo")) # 1
15 print([Link]("verde")) # 1

3
Diccionarios (dict)

Características
• Colecciones de pares clave-valor
• No ordenados (hasta Python 3.6), ordenados (desde Python 3.7+)
• Claves deben ser inmutables e únicas
• Muy eficientes para búsquedas

4
Operaciones con diccionarios
1 # Creación
2 estudiante = {"nombre": "Ana", "edad": 22, "carrera": "CS"}
3 thisdict = dict(name = "John", age = 36, country = "Norway")
4

5 # Acceso
6 print(estudiante["nombre"]) # "Ana"
7 print([Link]("edad")) # 22
8 print([Link]("ciudad", "No especificada")) # "No especificada"
9

10 # Modificación
11 estudiante["edad"] = 22
12 estudiante["ciudad"] = "Madrid"
13

14 # Métodos
15 print([Link]()) # dict_keys(['nombre', 'edad', 'carrera',
'ciudad'])
16 print([Link]()) # dict_values(['Ana', 23, 'CS', 'Madrid'])
17 print([Link]()) # dict_items([('nombre', 'Ana'), ...])

5
Sets (conjuntos)

Características
• Colecciones no ordenadas de elementos únicos
• Muy eficientes para operaciones de pertenencia
• Soportan operaciones matemáticas de conjuntos
• Elementos deben ser inmutables

6
Operaciones con sets
1 # Creación
2 numeros = {1, 2, 3, 4, 5}
3 vocales = set("aeiou")
4

5 # Operaciones básicas
6 [Link](6) # {1, 2, 3, 4, 5, 6}
7 [Link](3) # {1, 2, 4, 5, 6}
8

9 # Operaciones de conjuntos
10 A = {1, 2, 3, 4}
11 B = {3, 4, 5, 6}
12

13 print(A | B) # Unión: {1, 2, 3, 4, 5, 6}


14 print(A & B) # Intersección: {3, 4}
15 print(A - B) # Diferencia: {1, 2}
16 print(A ^ B) # Diferencia simétrica: {1, 2, 5, 6}

7
Funciones
Funciones en Python

Definición y llamada
1 # Definición básica
2 def saludar(nombre):
3 """Función que saluda a una persona"""
4 return f"¡Hola {nombre}!"
5

6 # Llamada
7 mensaje = saludar("Carlos")
8 print(mensaje) # ¡Hola Carlos!
9

10 # Función con múltiples parámetros


11 def potencia(base, exponente):
12 return base ** exponente
13

14 resultado = potencia(2, 3) # 8

8
Parámetros por defecto
1 def mostrar_info(nombre, edad=25, ciudad="Desconocida"):
2 return f"{nombre}, {edad} años, de {ciudad}"
3

4 print(mostrar_info("Ana")) # Ana, 25 años, de Desconocida


5 print(mostrar_info("Luis", 30)) # Luis, 30 años, de Desconocida
6 print(mostrar_info("Marta", 28, "Sevilla")) # Marta, 28 años, de Sevilla

9
*args y **kwargs
Número variable de argumentos
1 # *args para múltiples argumentos posicionales
2 def sumar(*args):
3 return sum(args)
4

5 print(sumar(1, 2, 3)) # 6
6 print(sumar(1, 2, 3, 4, 5)) # 15
7

8 # **kwargs para múltiples argumentos con nombre


9 def mostrar_info(**kwargs):
10 for clave, valor in [Link]():
11 print(f"{clave}: {valor}")
12

13 mostrar_info(nombre="Ana", edad=25, ciudad="Madrid")


14 # nombre: Ana
15 # edad: 25
16 # ciudad: Madrid

10
1 # Combinación de ambos
2 def funcion_completa(a, b, *args, **kwargs):
3 print(f"a: {a}, b: {b}")
4 print(f"args: {args}")
5 print(f"kwargs: {kwargs}")

11
Funciones como Objetos
Funciones como variables
1 def cuadrado(x):
2 return x ** 2
3

4 def cubo(x):
5 return x ** 3
6

7 # Asignar función a variable


8 operacion = cuadrado
9 print(operacion(5)) # 25
10

11 operacion = cubo
12 print(operacion(5)) # 125
13

14 # Funciones en listas
15 operaciones = [cuadrado, cubo]
16 for func in operaciones:
17 print(func(3)) # 9, luego 27
12
Funciones como parámetros
1 def aplicar_funcion(func, valores):
2 return [func(x) for x in valores]
3

4 numeros = [1, 2, 3, 4, 5]
5 print(aplicar_funcion(cuadrado, numeros)) # [1, 4, 9, 16, 25]
6 print(aplicar_funcion(cubo, numeros)) # [1, 8, 27, 64, 125]

13
Funciones Lambda

Funciones anónimas
1 # Sintaxis: lambda argumentos: expresión
2

3 # Función lambda equivalente a cuadrado


4 cuadrado = lambda x: x ** 2
5 print(cuadrado(5)) # 25
6

7 # Uso con map()


8 numeros = [1, 2, 3, 4, 5]
9 cuadrados = list(map(lambda x: x ** 2, numeros))
10 print(cuadrados) # [1, 4, 9, 16, 25]
11

12 # Uso con filter()


13 pares = list(filter(lambda x: x % 2 == 0, numeros))
14 print(pares) # [2, 4]

14
Ejercicios
Ejercicio 1: Análisis de Texto Avanzado
Enunciado
Crea una función que reciba un texto y devuelva un diccionario con:

1. Número total de palabras


2. Número de palabras únicas
3. La palabra más larga
4. Frecuencia de cada letra (ignorando mayúsculas/minúsculas)
5. Las 5 palabras más comunes

Ejemplo
Entrada: ”Python es poderoso. Python es simple. Python es eficaz.”
Salida esperada:

{
'total_palabras': 9, 15
Ejercicio 2: Sistema de Gestión de Estudiantes
Enunciado
Crea un sistema de gestión de estudiantes usando:

• Tuplas para representar estudiantes (nombre, edad, carrera)


• Sets para almacenar carreras únicas
• Diccionarios para calificaciones por estudiante
• Funciones para operaciones

Implementa las siguientes funciones:

1. agregar_estudiante(nombre, edad, carrera)


2. asignar_calificacion(nombre, materia, calificacion)
3. obtener_promedio(nombre)
4. estudiantes_por_carrera(carrera)
5. top_estudiantes(n=3)
16

También podría gustarte