Dibujar un Cuadrado con Asteriscos en Python (Guía paso a paso)
"Cada figura que construyes con código es un pequeño ladrillo en el edificio de tu aprendizaje."
def dibujar_cuadrado(n, relleno=True):
for i in range(n):
if relleno or i == 0 or i == n-1:
print("*" * n)
else:
print("*" + " " * (n-2) + "*")
En este tutorial aprenderás paso a paso cómo dibujar un cuadrado con asteriscos en Python.
Comenzaremos con ejemplos simples para principiantes y luego veremos técnicas más avanzadas para crear cuadrados personalizados y alineados.
Conceptos básicos en Python para dibujar con asteriscos
En Python usamos la función print() para mostrar texto en la consola.
Los asteriscos "*"
no tienen un significado especial, simplemente son caracteres que podemos repetir.
Ejemplo básico:
print("**")
print("*")
print("***")
Salida:
**
*
***
Con esto podemos empezar a formar patrones.
Cómo dibujar un cuadrado básico con asteriscos en Python
Un cuadrado es simplemente un bloque de asteriscos con el mismo número de filas y columnas.
Ejemplo con for
y repeticiones de cadenas
# Dibujar un cuadrado de 5x5
for i in range(5):
print("*" * 5)
Salida:
*****
*****
*****
*****
*****
Aquí el operador *
nos permite repetir un carácter en Python.
Dibujar un cuadrado con bordes en Python
En lugar de un bloque sólido, podemos crear solo el contorno del cuadrado.
n = 5
for i in range(n):
if i == 0 or i == n-1: # primera y última fila
print("*" * n)
else: # filas intermedias
print("*" + " " * (n-2) + "*")
Salida:
*****
* *
* *
* *
*****
Aquí combinamos bucles en Python con condicionales if.
Cuadrado dinámico: controlar el tamaño con variables
Podemos pedir al usuario que elija el tamaño del cuadrado:
n = int(input("Tamaño del cuadrado: "))
for i in range(n):
print("*" * n)
De esta forma, el cuadrado es flexible y se adapta a la entrada.
Avanzado: función en Python para dibujar cuadrados
Podemos definir una función en Python para reutilizar el código y decidir si queremos un cuadrado sólido o vacío:
def dibujar_cuadrado(n, relleno=True):
for i in range(n):
if relleno or i == 0 or i == n-1:
print("*" * n)
else:
print("*" + " " * (n-2) + "*")
# Ejemplos:
dibujar_cuadrado(4, True) # cuadrado sólido
dibujar_cuadrado(6, False) # cuadrado vacío
Nivel experto: cuadrado alineado y estilizado en consola
También podemos centrar el cuadrado para que se vea más ordenado:
n = 5
for i in range(n):
print(("*" * n).center(20))
Salida (centrado en un ancho de 20 caracteres):
*****
*****
*****
*****
*****