Ejercicio 02 — Escribe max_de_dos(a, b) que devuelva el mayor

Dificultad: verde · Módulo 04 (Funciones)

Enunciado

Escribe max_de_dos(a, b) que devuelva el mayor. Pide dos numeros e imprime el mayor (sin usar max()).

Diagramas de flujo

Diagrama de flujo (actividad) del ejercicio 02

Diagrama de flujo (grafo) del ejercicio 02

Cómo se resuelve

Una función puede recibir varios parámetros y tener más de un return: el primero que se ejecuta corta la función y entrega su valor.

  1. def max_de_dos(a, b): — dos parámetros separados por coma. Al llamar max_de_dos(a, b) los valores se emparejan por posición: el primer argumento va a a, el segundo a b.
  2. if a >= b: return a — si la condición se cumple, return a devuelve ese valor y sale de la función de inmediato; nada de lo que venga después se ejecuta.
  3. return b — no necesita un else. Si el if no se cumplió, el flujo llega hasta aquí de forma natural y devuelve b. Esto se llama “early return” y evita anidar; es un patrón muy común en Python.
  4. El enunciado pide no usar max(): la gracia es escribir tú la lógica de comparación en vez de apoyarte en la función built-in.

Trampa habitual: pensar que hace falta else. Como cada return sale de la función, tras el if ya solo puede quedar el caso contrario, así que un return b suelto basta. Otra trampa: usar > en vez de >=; con >= cubres el empate a == b y devuelves a, que es correcto porque es igual de “mayor”.

Para practicar — cópialo y complétalo

Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.

# Curso de Python — Modulo 04: Funciones
# Ejercicio 02 — PRACTICA (rellena los TODO)
# Enunciado: Escribe max_de_dos(a, b) que devuelva el mayor. Pide dos numeros e imprime el mayor (sin usar max()).
# Dificultad: verde
# Ejecutar: python3 ej02_practica.py
 
 
def max_de_dos(a, b):
    """Devuelve el mayor de dos numeros sin usar la funcion built-in max()."""
    # TODO: usa if/else (o solo if con dos return) para comparar a y b
    # TODO: devuelve el que sea mayor
    pass
 
 
# TODO: pide dos numeros al usuario (dos llamadas a int(input(...)))
a = None  # reemplaza None
b = None  # reemplaza None
 
# TODO: llama a max_de_dos(a, b) y guarda el resultado en mayor
mayor = None  # reemplaza None
 
# TODO: imprime con f-string: "El mayor de <a> y <b> es: <mayor>"

Solución — cópiala y ejecútala

# Curso de Python — Modulo 04: Funciones
# Ejercicio 02 — MODELO (resuelto)
# Enunciado: Escribe max_de_dos(a, b) que devuelva el mayor. Pide dos numeros e imprime el mayor (sin usar max()).
# Dificultad: verde
# Ejecutar: python3 ej02_modelo.py
 
 
def max_de_dos(a, b):
    """Devuelve el mayor de dos numeros sin usar la funcion built-in max()."""
    if a >= b:
        return a
    return b
 
 
a = int(input("Introduce el primer numero: "))
b = int(input("Introduce el segundo numero: "))
mayor = max_de_dos(a, b)
print(f"El mayor de {a} y {b} es: {mayor}")

Ejecútalo en el navegador

▶ Visualízalo paso a paso en Python Tutor — ve cómo cambian las variables línea a línea.

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones