1
Aprender a programar desde cero / Dibujar árbol navidad Python código bucle for while recursivo lógica algoritmia
« en: 22 de Diciembre 2023, 09:53 »
Unos códigos que ilustran como dibujar un árbol de Navidad usando Python de tres maneras diferentes. Es un ejercicio interesante para practicar con bucles para cualquier persona que esté aprendiendo programación, tanto con Python como con otros lenguajes.
Código con bucle for:
Código con bucle while:
Y la que quizás sea la versión más compleja, basada en código recursivo:
Quien se anime puede crear el mismo código en otro lenguaje usando las mismas ideas ("lógica o algoritmia subyacente").
Código con bucle for:
Código: [Seleccionar]
# Función para dibujar un árbol de navidad de una altura dada
def draw_tree(height):
# Bucle for que crea cada fila del árbol
for i in range(1, height + 1):
# Imprimir los espacios antes de los asteriscos en cada fila
for j in range(height - i):
print(" ", end="")
# Imprimir los asteriscos en cada fila
for j in range(2 * i - 1):
print("*", end="")
# Pasar a la siguiente línea
print()
# Llamar a la función para dibujar el árbol con una altura dada por ejemplo 5
draw_tree(5)
Código con bucle while:
Código: [Seleccionar]
# Función para dibujar un árbol de navidad de una altura dada
def draw_tree(height):
# Establecer los valores iniciales para el bucle while
i = 1
j = 1
# Iterar mientras el número de fila sea menor o igual a la altura del árbol
while i <= height:
# Imprimir los espacios antes de los asteriscos en cada fila
while j <= height - i:
print(" ", end="")
j += 1
# Resetear el valor de j
j = 1
# Imprimir los asteriscos en cada fila
while j <= 2 * i - 1:
print("*", end="")
j += 1
# Resetear el valor de j
j = 1
# Pasar a la siguiente línea
print()
# Incrementar el valor de i
i += 1
# Llamar a la función para dibujar el árbol con una altura dada por ejemplo 15
draw_tree(15)
Y la que quizás sea la versión más compleja, basada en código recursivo:
Código: [Seleccionar]
# Función para dibujar un árbol de navidad de una altura y nivel dada
def draw_tree(height, level):
# Comprobar si el nivel es igual a la altura del árbol
if level == height:
# Return si el nivel es igual a la altura
return
# Imprimir los espacios antes de los asteriscos en cada fila
for j in range(height - level):
print(" ", end="")
# Imprimir los asteriscos en cada fila
for j in range(2 * level - 1):
print("*", end="")
# Pasar a la siguiente línea
print()
# Llamar a la función recursivamente con el siguiente nivel
draw_tree(height, level + 1)
# Llamar a la función para dibujar el árbol con una altura dada por ejemplo 5
draw_tree(5, 1)
Quien se anime puede crear el mismo código en otro lenguaje usando las mismas ideas ("lógica o algoritmia subyacente").