Pirámide de progtwig de asteriscos en Python

He escrito un progtwig en C ++ que muestra una pirámide de asterisco (ver más abajo) y ahora me gustaría ver cómo se hace en Python, pero no es tan fácil como pensé.

¿Alguien ha intentado esto y, si es así, me podría mostrar un código que ayude?

Gracias por adelantado.

* *** ***** ******* ********* *********** ************* *************** 

 def pyramid(rows=8): for i in range(rows): print ' '*(rows-i-1) + '*'*(2*i+1) pyramid(8) * *** ***** ******* ********* *********** ************* *************** pyramid(12) * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ********************* *********************** 

O podrías intentar:

 def pyramid(size=8): for i in range(size): row = '*'*(2*i+1) print row.center(2*size) 

Puedes usar la multiplicación de cadenas así:

 >>> for i in range(size): ... print '%s%s'%(' '*(size-(i-1)),'*'*((i*2)-1)) ... 

Este código no es muy pythonic, pero es legible. Mira la respuesta de Hugh Bothewell para una función de dibujo de pirámide compacta:

 def drawPyramid(rows): result = '' for i in xrange(rows): row = '' row += ' ' * (rows - i - 1) row += '*' * (2 * i + 1) result += row + '\n' return result print drawPyramid(20) 

Sugeriría la siguiente función:

 def pyramid(rows=8): pyramid_width = rows * 2 for asterisks in range(1, pyramid_width, 2): print("{0:^{1}}".format("*" * asterisks, pyramid_width)) 

Entonces intente con:

 pyramid() 

o con:

 pyramid(4) 
 Pyramid, Inverted Pyramid and Diamond Rhombus in Python: Pyramid i=1 j=5 while i<=5: print((j*' ')+i*'* ') j=j-1 i=i+1 * * * * * * * * * * * * * * * Inverted Pyramid i=1 j=5 while i<=5: print((i*' ')+j*'* ') j=j-1 i=i+1 * * * * * * * * * * * * * * * Diamond Rhombus i=1 j=5 while i<=5: print((j*' ')+i*'* ') while j<=5 & i==5: print(((j+1)*' ')+(5-j)*'* ') j=j+1 j=j-1 i=i+1 * * * * * * * * * * * * * * * * * * * * * * * * * 
 $ cat tree.py def line(n, i): line = '' for j in range(n - i - 1): line += ' ' for j in range(2 * i + 1): line += '*' for j in range(n - i - 1): line += ' ' return line def tree(n): for i in range(n): line_ = line(n, i) print(line_) def run(): tree(3) if __name__ == '__main__': run() $ python3 tree.py * *** ***** $ _ 

Si te gusta la lista de comprensiones:

 > n = 5 > print("\n".join((i*"*").center(n*2) for i in range(1, n*2, 2))) * *** ***** ******* ********* 
 def pyramid(row): for n in range(row): print(' '*(n+1)+' '*(2*(row-n))+'x'+'x'*(2*n+1)) pyramid(row=8) 

Aunque soy muy nuevo en Python, así es como lo resolví:

 k=int(input("Enter the number of rows")) for i in range(1,k): print(' '*(ki),'* '*(i)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * 


También puedes dibujar un DIAMANTE.

 def pyramid(r): for i in range(r): print (" "*(ri-1) + "*"*(2*i+1)) for i in range(r-1,-1,-1): print (' '*(ri-1) + "*"*(2*i+1)) n=int(input("Enter no of rows:")) pyramid(n) pyramid(10) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>> 
 #!/usr/bin/python for i in range(1,6): for j in range(1,i+1): print "*", print O/P: === * * * * * * * * * * * * * * * 2) #!/usr/bin/python for i in range(1,6): for j in range(1,7-i): print "*", print O/P: * * * * * * * * * * * * * * * 3) #!/usr/bin/python for i in range(1,6): for j in range(1,6-i): print "", for k in range(1,i+1): print "*", print O/P: * * * * * * * * * * * * * * * 4) #!/usr/bin/python for i in range(1,6): for j in range(1,1+i): print "", for k in range(1,7-i): print "*", print O/P: * * * * * * * * * * * * * * * 5) #!/usr/bin/python for i in range(1,6): for j in range(1,6-i): print "", for k in range(1,i+1): print "*", print for i in range(1,5): for j in range(1,1+i): print "", for k in range(1,6-i): print "*", print O/P: * * * * * * * * * * * * * * * * * * * * * * * * *