.
Solución al Ejercicio: Aplicar sangría
📋 Copiar código
def aplicar_sangria(texto, nivel_sangria):
"""
Aplica sangría a cada línea de un bloque de texto.
Args:
texto: La cadena de texto a la que se aplicará la sangría.
Puede contener múltiples líneas separadas por '\n'.
nivel_sangria: El número de espacios para la sangría.
Returns:
Una nueva cadena con la sangría aplicada a cada línea.
"""
lineas = texto.split('\n')
sangria = " " * nivel_sangria
texto_con_sangria = ""
for i, linea in enumerate(lineas):
texto_con_sangria += sangria + linea
if i < len(lineas) - 1:
texto_con_sangria += '\n'
return texto_con_sangria
# Ejemplos de uso
texto1 = """Esta es la primera línea.
Esta es la segunda línea.
Esta es la tercera línea."""
sangria1 = 4
resultado1 = aplicar_sangria(texto1, sangria1)
print(f"Texto con sangría de {sangria1} espacios:\n'{resultado1}'")
texto2 = "Una sola línea."
sangria2 = 2
resultado2 = aplicar_sangria(texto2, sangria2)
print(f"\nTexto con sangría de {sangria2} espacios:\n'{resultado2}'")
texto3 = ""
sangria3 = 8
resultado3 = aplicar_sangria(texto3, sangria3)
print(f"\nTexto con sangría de {sangria3} espacios:\n'{resultado3}'")
texto4 = """Línea 1.
Línea 2 con más texto."""
sangria4 = 0
resultado4 = aplicar_sangria(texto4, sangria4)
print(f"\nTexto con sangría de {sangria4} espacios:\n'{resultado4}'")
Explicación del Código:
-
def aplicar_sangria(texto,
nivel_sangria):
:
- Define una función llamada
aplicar_sangria
que toma una cadena de texto (texto
)
y un entero (nivel_sangria
) como entrada.
-
lineas = texto.split('\n')
:
- Divide el texto en una lista de líneas,
utilizando el carácter de nueva línea (
\n
) como
delimitador.
-
sangria = " " * nivel_sangria
:
- Crea una cadena de sangría que consiste
en el número especificado de espacios.
-
texto_con_sangria = ""
:
- Inicializa una cadena vacía para
almacenar el texto con la sangría aplicada.
-
for i, linea in
enumerate(lineas):
:
- Itera a través de cada línea en la lista
lineas
, utilizando enumerate
para obtener
tanto el índice como la línea.
-
texto_con_sangria += sangria +
linea
:
- Añade la cadena de sangría al principio
de la línea actual y luego añade la propia línea al
texto_con_sangria
.
-
if i < len(lineas) - 1:
:
- Verifica si la línea actual no es la
última línea del texto.
-
texto_con_sangria += '\n'
:
- Si no es la última línea, añade un
carácter de nueva línea para mantener la estructura del texto original.
-
return texto_con_sangria
:
- Devuelve la cadena completa con la
sangría aplicada a cada línea.
Ejemplos de Uso:
Los ejemplos muestran cómo la función aplica la
sangría especificada a diferentes bloques de texto, incluyendo casos con
múltiples líneas, una sola línea y texto vacío.