📱 Control remoto

Escaneá con tu celular para controlar la presentación.

QR Code
Python 3 · Semana 3 · Sesión 6 · UAJMS Yacuiba
def mi_programa(...):
Funciones &
Proyecto Final
Código reutilizable · Proyectos integradores
60–90 min 📍 UAJMS · Yacuiba 🐍 Python 3 # Sesión 6 de 6 · Última sesión
1 / 22
Sesión 6Objetivos
🏁
Última sesión del curso. Hoy cerramos el círculo: unimos variables, condicionales, bucles y listas dentro de funciones — la herramienta que hace que el código escale.
2 / 22
6.1¿Qué es una Función?

Una función es un bloque de código con nombre que hace una tarea específica. Se define una vez y se llama cuantas veces haga falta.

def saludar():
def saludar():
    print("¡Hola! Bienvenido al programa.")
    print("Espero que tengas un buen día.")
# Llamar la función (se puede repetir)
saludar()
saludar()
saludar()
¡Hola! Bienvenido al programa. Espero que tengas un buen día. ¡Hola! Bienvenido al programa. Espero que tengas un buen día. ¡Hola! Bienvenido al programa. Espero que tengas un buen día.
3 / 22
6.1Anatomía de una Función
def  calcular_area(base, altura):
     # cuerpo indentado con 4 espacios
     area = base * altura
     return area
partequé esejemplo
defPalabra clave que define la funcióndef
nombreIdentificador descriptivo (verbo+sustantivo)calcular_area
parámetrosVariables de entrada entre paréntesisbase, altura
:Inicio del cuerpo (obligatorio):
returnDevuelve un valor al código que llamóreturn area
⚠️
¡Indentación! El cuerpo de la función usa 4 espacios. Sin ellos, Python lanza un error de sintaxis.
4 / 22
6.2
sección
Funciones con Parámetros
Los parámetros son las "entradas" de la función — permiten que trabaje con datos diferentes cada vez que se llama.
def saludar(nombre, cargo):
5 / 22
6.2Parámetros y Argumentos
def saludar_persona(nombre, cargo):
    print("Hola,", nombre)
    print("Tu cargo es:", cargo)
    print("-" * 20)

saludar_persona("Ana", "Estudiante")
saludar_persona("Prof. García", "Docente")
Hola, Ana Tu cargo es: Estudiante -------------------- Hola, Prof. García Tu cargo es: Docente --------------------
💡
Parámetro = nombre en la definición (nombre). Argumento = valor real al llamar ("Ana"). Son el mismo dato, solo cambia el momento en que existe.
6 / 22
6.2Parámetros con Valor por Defecto
def potencia(base, exponente=2):
    resultado = base ** exponente
    print(base, "elevado a", exponente, "=", resultado)

potencia(5)       # usa exponente=2 por defecto
potencia(3, 4)    # usa exponente=4
potencia(2, 10)   # usa exponente=10
5 elevado a 2 = 25 3 elevado a 4 = 81 2 elevado a 10 = 1024
Valores por defecto hacen la función más flexible. El parámetro con defecto siempre va al final de la lista de parámetros.
7 / 22
6.3
sección
Funciones con return
La función calcula algo y devuelve el resultado al código que la llamó — para que puedas guardarlo, imprimirlo o usarlo en otra operación.
return resultado
8 / 22
6.3return — Devolver un Valor
def calcular_area(base, altura):
    area = base * altura
    return area
def calcular_promedio(lista_notas):
    total = sum(lista_notas)
    promedio = total / len(lista_notas)
    return round(promedio, 2)
# Usar los valores devueltos
mi_area = calcular_area(8, 5)
print("Área:", mi_area, "cm²")
notas = [85, 92, 78, 95, 88]
print("Promedio:", calcular_promedio(notas))
Área: 40 cm² Promedio: 87.6
9 / 22
6.3¿Con o Sin return?
sin return — solo imprime
def mostrar_doble(n):
    print(n * 2)

mostrar_doble(5)
# resultado = mostrar_doble(5)
# resultado sería None ⚠️
10
con return — devuelve valor
def calcular_doble(n):
    return n * 2

resultado = calcular_doble(5)
print(resultado + 3)   # ✅
print(resultado * 4)   # ✅
13 40
🔑
Usá print() cuando solo querés mostrar. Usá return cuando el resultado va a usarse en otra operación.
10 / 22
6.3Buenas Prácticas
def es_par(numero):
    # Devuelve True si numero es par, False si es impar
    return numero % 2 == 0

print(es_par(4))    # True
print(es_par(7))    # False
True False
11 / 22
Ejercicio 16Mi Primera Función
📋 consigna
  1. Escribí una función es_par(numero) que devuelva True si es par y False si es impar.
  2. Probá la función con 4, 7, 10 y 13.
  3. Usala dentro de un for para clasificar los números del 1 al 20.
def es_par(numero):
    return numero % 2 == 0

for n in range(1, 21):
    tipo = "par" if es_par(n) else "impar"
    print(f"{n} es {tipo}")
1 es impar 2 es par 3 es impar 4 es par ...
12 / 22
Ejercicio 17Función Matemática — factorial
📋 factorial
  1. Escribí factorial(n) que calcule n! usando un bucle.
  2. 5! = 5 × 4 × 3 × 2 × 1 = 120
def factorial(n):
    resultado = 1
    for i in range(1, n + 1):
        resultado *= i
    return resultado
print(factorial(5))   # 120
print(factorial(0))   # 1
print(factorial(10))  # 3628800
120 1 3628800
13 / 22
6.4
proyecto final
Proyecto
Integrador
Unimos todo lo del curso: variables · tipos · condicionales · bucles · listas · funciones
14 / 22
Opción ACalculadora con Menú — Funciones
def sumar(a, b):        return a + b
def restar(a, b):       return a - b
def multiplicar(a, b):  return a * b
def dividir(a, b):
    if b == 0:
        return "Error: división por cero"
    return a / b

def mostrar_menu():
    print("\\n=== CALCULADORA ===")
    print("1. Sumar   2. Restar   3. Multiplicar   4. Dividir   5. Salir")
🔑
Cada operación es su propia función. mostrar_menu() agrupa la interfaz. El bucle while mantiene la calculadora activa hasta elegir "5".
15 / 22
Opción ACalculadora con Menú — Bucle principal
opcion = ""
while opcion != "5":
    mostrar_menu()
    opcion = input("Elige una opción: ")
    if opcion in ["1", "2", "3", "4"]:
        a = float(input("Primer número: "))
        b = float(input("Segundo número: "))
    if   opcion == "1": print(sumar(a, b))
    elif opcion == "2": print(restar(a, b))
    elif opcion == "3": print(multiplicar(a, b))
    elif opcion == "4": print(dividir(a, b))
    elif opcion == "5": print("¡Hasta luego!")
    else: print("Opción inválida.")
🎯
Todo conectado: funciones para las operaciones, un while para el menú, if/elif para las decisiones. ¡Eso es programar!
16 / 22
Opción BRegistro de Estudiantes — Funciones
def agregar_estudiante(lista, nombre, nota):
    lista.append({"nombre": nombre, "nota": nota})

def mostrar_estudiantes(lista):
    print("\\n--- Registro de Estudiantes ---")
    for i, est in enumerate(lista):
        estado = "APROBADO" if est["nota"] >= 60 else "REPROBADO"
        print(f"{i+1}. {est['nombre']:20} │ Nota: {est['nota']:5.1f} │ {estado}")

def promedio_grupo(lista):
    if len(lista) == 0:
        return 0
    total = sum(est["nota"] for est in lista)
    return round(total / len(lista), 2)
17 / 22
Opción BRegistro de Estudiantes — Ejecución
estudiantes = []
while True:
    nombre = input("Nombre del estudiante (o 'fin'): ")
    if nombre.lower() == "fin":
        break
    nota = float(input("Nota: "))
    agregar_estudiante(estudiantes, nombre, nota)
mostrar_estudiantes(estudiantes)
print("Promedio del grupo:", promedio_grupo(estudiantes))
--- Registro de Estudiantes --- 1. María García │ Nota: 88.0 │ APROBADO 2. Juan Pérez │ Nota: 55.0 │ REPROBADO Promedio del grupo: 71.5
18 / 22
ReferenciaResumen — Funciones
conceptosintaxisdescripción
Definirdef nombre():Crea la función (no la ejecuta)
Llamarnombre()Ejecuta el código de la función
Parámetrosdef f(a, b):Variables de entrada
Argumentosf(5, 10)Valores reales al llamar
Por defectodef f(n=2):Valor si no se pasa argumento
returnreturn valorDevuelve resultado al llamador
⚠️
La función se debe definir antes de llamarla. Si llamás a una función antes de definirla, Python lanzará un NameError.
19 / 22
CierreEvaluación del Curso
criterio%descripción
Participación en clase30 %Actitud activa, preguntas, resolución de ejercicios
Ejercicios por sesión40 %Ejercicios entregados al final de cada clase
Proyecto Final30 %Programa funcional que integre todos los temas
📋
No hay exámenes escritos formales. La asistencia y la participación activa son criterios principales. Guardá el archivo como proyecto_final_TuNombre.py.
20 / 22
CierreLo que Aprendiste en 6 Sesiones
semana 1
# S1: print y comentarios
print("Hola")

# S2: variables + input
nombre = input("?")
edad = int(edad_str)
semana 2
# S3: condicionales
if nota >= 60:
    print("Aprobado")

# S4: bucles
for i in range(10):
    print(i)
semana 3
# S5: listas
lista.append(x)
max(lista)

# S6: funciones
def mi_funcion(n):
    return n * 2
🚀
¿Y ahora qué? Con estos fundamentos podés aprender ciencia de datos (pandas, numpy), desarrollo web (Flask/Django), automatización, y mucho más. ¡Seguí practicando!
21 / 22
Python 3 · UAJMS · Yacuiba · 2025
def mi_futuro():
¡Felicidades!
Completaste el curso de introducción a Python.
El primer paso siempre es el más importante.
🎓 UAJMS · Yacuiba 🐍 Python 3 — 6 sesiones 🚀 ¡Seguí aprendiendo!
22 / 22