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()).

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}")

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