elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Python: Pirámide digital.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python: Pirámide digital.  (Leído 3,219 veces)
xSyrax122

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Python: Pirámide digital.
« en: 28 Diciembre 2021, 18:19 pm »

 Hola, buenas, alguien me ayudaría a entender este código y la lógica detrás de él?

def pyramid(n):
    nums = ''.join(str(i+1) + ' ' for i in range(n))

    for i in range(n):
        blank = ' ' * 2 * (n-i-1)

        prefix = nums[:2*i]
        postfix = prefix[::-1]

        print(f'{blank}{prefix}{i+1}{postfix}')

pyramid(9)

Salida del programa:
                 1
              1 2 1
            1 2 3 2 1
          1 2 3 4 3 2 1
        1 2 3 4 5 4 3 2 1
      1 2 3 4 5 6 5 4 3 2 1
    1 2 3 4 5 6 7 6 5 4 3 2 1
  1 2 3 4 5 6 7 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1


En línea

LlopoRobot

Desconectado Desconectado

Mensajes: 116


Un instante, una mente al unísono


Ver Perfil
Re: Python: Pirámide digital.
« Respuesta #1 en: 17 Abril 2023, 10:37 am »

Este código genera una pirámide digital en la que cada fila muestra los números del 1 al n, donde n es el número de filas de la pirámide.

Para ello, primero se genera una cadena de caracteres llamada nums, que contiene los números del 1 al n separados por un espacio y con un espacio adicional al final. Esto se hace usando una comprensión de lista que recorre los números del 1 al n y agrega cada número y un espacio a una cadena de salida. Luego, en un bucle for que también recorre los números del 1 al n, se genera una cadena blank de espacios en blanco que se coloca en el lado izquierdo de la fila de la pirámide para asegurarse de que la pirámide esté centrada.

Luego se crea una cadena prefix que contiene los primeros 2 * i caracteres de nums y una cadena postfix que contiene prefix en orden inverso. El número actual de la fila de la pirámide se agrega entre estas dos cadenas. Finalmente, se imprime la fila de la pirámide con una cadena blank al principio, seguida de prefix, el número actual y postfix.

Al aumentar el valor de n en el llamado a la función pyramid(), se puede generar una pirámide digital más grande o más pequeña.


En línea

I'm woman baby. Can't you tell?
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Código] Calcular volumen de un cono o una pirámide [Python]
Scripting
@Sthéfano 0 11,245 Último mensaje 26 Julio 2010, 22:29 pm
por @Sthéfano
Una pirámide de codicia
Noticias
wolfbcn 0 1,507 Último mensaje 6 Julio 2014, 22:21 pm
por wolfbcn
PIRAMIDE
Programación C/C++
mariano96 4 4,247 Último mensaje 13 Febrero 2015, 19:10 pm
por mariano96
[AYUDA] piramide en c++? « 1 2 »
Programación C/C++
ianmorar03 12 12,768 Último mensaje 20 Abril 2016, 23:08 pm
por ivancea96
Piramide de Numeros -> C++
Programación C/C++
Joseph CM 1 5,918 Último mensaje 29 Enero 2021, 21:16 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines