1 usuario conectado

Formatear nombre completo. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada formatear_nombre_completo que tome una cadena de texto que represente un nombre completo (con el nombre, uno o varios apellidos separados por espacios) y devuelva una nueva cadena con el nombre en el formato "Apellidos, Nombre" (con una coma y un espacio entre los apellidos y el nombre). Se debe asumir que la primera palabra es el nombre y las siguientes son los apellidos.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Formatear nombre completo

📋 Copiar código

def formatear_nombre_completo(nombre_completo):
"""
Formatea un nombre completo de "Nombre Apellido1 Apellido2 ..." a "Apellidos, Nombre".

Args:
nombre_completo: La cadena de texto con el nombre completo.

Returns:
Una cadena con el nombre formateado como "Apellidos, Nombre".
"""
partes = nombre_completo.split()
if not partes:
return ""
nombre = partes[0]
apellidos = " ".join(partes[1:])
if apellidos:
return f"{apellidos}, {nombre}"
else:
return nombre

# Ejemplos de uso
nombre1 = "Juan Pérez García"
resultado1 = formatear_nombre_completo(nombre1)
print(f"'{nombre1}' formateado: '{resultado1}'")

nombre2 = "María López"
resultado2 = formatear_nombre_completo(nombre2)
print(f"'{nombre2}' formateado: '{resultado2}'")

nombre3 = "Pedro Sánchez Fernández Ruiz"
resultado3 = formatear_nombre_completo(nombre3)
print(f"'{nombre3}' formateado: '{resultado3}'")

nombre4 = "Ana"
resultado4 = formatear_nombre_completo(nombre4)
print(f"'{nombre4}' formateado: '{resultado4}'")

nombre5 = ""
resultado5 = formatear_nombre_completo(nombre5)
print(f"'' formateado: '{resultado5}'")

nombre6 = " Carlos Martínez "
resultado6 = formatear_nombre_completo(nombre6)
print(f"'{nombre6}' formateado: '{resultado6}'")



Explicación del Código:

  1. Función formatear_nombre_completo(nombre_completo):
    • Divide la cadena nombre_completo en una lista de partes (palabras) utilizando el método split().
    • Verifica si la lista partes está vacía. Si lo está, devuelve una cadena vacía.
    • Asigna la primera palabra de la lista (partes[0]) a la variable nombre.
    • Utiliza " ".join(partes[1:]) para unir todas las palabras restantes de la lista (a partir del segundo elemento) en una sola cadena llamada apellidos, con un espacio entre cada apellido.
    • Verifica si hay apellidos (if apellidos:).
      • Si hay apellidos, devuelve una cadena formateada como f"{apellidos}, {nombre}".
      • Si no hay apellidos (solo había un nombre en la entrada), devuelve solo el nombre.

Ejemplos de Uso:

Los ejemplos muestran cómo la función formatea diferentes nombres completos, incluyendo casos con uno o varios apellidos, nombres sin apellidos y cadenas con espacios en blanco adicionales. La función asume que la primera palabra es siempre el nombre.