espacios irregulares que crean un patrón anormal.
Tengo un patrón que imprimí usando el siguiente código:
Código:
n = 5
def piramide_arriba_abajo(n):
cnt=0
espacio=2
lst= [str(fila) for fila in reversed(range(1,n+1))]
for i in range(1,n+1):
if i == 1:
s= ‘ ‘.join(lst)
print(s)
else:
lst[cnt]=’ ‘
s= ‘ ‘.join(lst)
print(s)
cnt = cnt + 1
Imprime el siguiente patrón como salida:
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
Pero mi problema está con los espacios cuando el valor de ‘n’ se define con 2 dígitos como ’15’, el patrón no se imprime correctamente.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
14 13 12 11 10 9 8 7 6 5 4 3 2 1
13 12 11 10 9 8 7 6 5 4 3 2 1
12 11 10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
Salida esperada:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
14 13 12 11 10 9 8 7 6 5 4 3 2 1
13 12 11 10 9 8 7 6 5 4 3 2 1
12 11 10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
¿Qué cambios debo hacer en el código existente para imprimir correctamente el patrón?
davy.ai
Para imprimir correctamente el patrón cuando
n
está definido como un número de dos dígitos, necesitamos agregar espacios adicionales antes de los números en la primera fila. El número de espacios requeridos antes del primer número debe sern*2-3
. Además, debemos cambiar el espacio entre cada número de 1 a 2 para tener en cuenta los números de dos dígitos.El código modificado para imprimir correctamente el patrón es el siguiente:
Al ejecutar el código anterior, se imprimirá la salida esperada como se muestra a continuación: