Primeramente, manejare el termino “asterisco” como estrella, debido a que es más bonito uwu
Este será un programa en el que te pedirá un cierto número de estrellas y las desplegará de mayor a menor, 1 menos en cada linea, ej: “4”
****
***
**
*
Y, después lo hará en orden ascendente inmediatamente después de tener una sola estrella, hasta que llegue a “n” número que le dimos.
1.- Necesitaremos dos for para controlar cuantas lineas serán y cuantas estrellas en cada linea:
Coincide en que si ponemos 42, (ejemplo) serán 42 lineas (como primero iremos de + a – iría: 42,41,40….1. Nuestro ciclo irá entonces de 42, o sea, el valor máx que nosotros demos a 0. porque en python comienza desde cero, será nuestra estrella 1.
Entonces se vería for i in range (n,0,-1) <– el -1 indica que iremos restando 1 en cada vuelta. yes yes ok yes.
Ahora va lo que imprimiremos: ESTRELLAS :3, no literal, serán los asteriscos…
Para eso, necesitaremos otro for, el cual DEBE ir dentro del anterior for, o si no pa’que lo hicimos :# el for serán las estrellas que se irán poniendo:
for j in range (0,i,1) pondrémos de 0 a i, la i viene de nuestro antiguo for, que controla las veces que se hace; al principio será i=42, después i=41… entonces, serán 42 estrellas, luego 41 y así. Dentro del segundo for irá el print (“*”,end=””) y otro print (“”) para que se salte a la otra linea y no las haga seguidas.
Serán dos for para la bajada y para la subida será lo mismo – dos for- pero, en la subida irá de 1 hasta “n” o nuestro valor max, aumentando. ES IMPORTANTE PONER QUE EMPIECE EN 1 Y NO EN 0, PQ
SE REPETIRA LA ESTRELLA #1:
****
***
**
*
*
**
***
****
Y en el segundo for le tenemos que poner que vaya de 0 a i+1 pq sino se imprimirá 1 menos.
Finalmente se meten dentro de funciones 1 de bajada y otra función de subida, puede ser una sola función pero equits :l En los return, tendremos que poner un espacio en blanco para que no imprima un “none”
Y nuestro programa principal será el input e imprimir los valores, cómo yo lo tengo en funciones separadas después de imprimir el de bajada, tengo que poner el “,end=””) para que no deje un espacio entre ellas y se haga corrido.
Y aquí está mi reacción al poner 42 estrellas c: y en el link está el porqué de mi “42”
.. Está imagen me parece algo perturbadoramente cool😡
Código //Github
def bajada(maxx):
for i in range (maxx,0,-1): ##de n, hasta 0, retrocediendo
for j in range (0,i,1):
print (“*”,end=””) ##las * estarán corridas
print (“”)
return “”
def subida(maxx):
for i in range (1,maxx,1): #de cero, hasta n, de 1 en 1
for j in range (0,i+1,1): ##de subida
print (“*”,end=””)
print (“”) ##deja un espacio y hace un salto a la
###siguiente linea
return “”
#principal
n=int(input(“Ingrese número de estrellas”))
print (bajada(n),end=””) ##para que se haga continua y
print (subida(n)) ##no deje un espacio entre ambas
Estrellas!!.. o “asteriscos” -_-****** by MajoDavila is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.