Próbuję napisać program, który wygląda mniej więcej tak, jeśli, powiedzmy, numer wejściowy to 6, lub coś w tym stylu, dane wyjściowe powinny wyglądać tak:
*
**
***
****
*****
******
*****
****
***
**
*
ale kiedy robię to tak, jak mi powiedziano, w ten właśnie sposób, ponieważ właśnie to powiedział mi kolega z klasy. :
n = int(input("Enter a value for n: "))
for i in range(1, n + 1):
for j in range(n):
if n - j > i:
print(" ", end = " ")
else:
print("*", end = " ")
print("")
for i in range(1, n):
for j in range(n):
if n - j < i:
print(" ", end = " ")
else:
print("*", end = " ")
print("")
Dostaję:
*
**
***
****
*****
******
*****
****
***
**
*
Co ja robię źle? Proszę, powiedz mi, jak ustawić poprawnie linię, naprawdę byłbym wdzięczny, gdyby ktoś mógł mi w tym pomóc, abym mógł nauczyć się robić to sam, proszę, pomóż mi ...
Odpowiedzi:
2 dla odpowiedzi № 1Jeśli twoje zadanie wymaga napisania kodu dokładnie tak, jak napisałeś, odpowiedź Kootza jest drogą do zrobienia.
Jednak bardziej uproszczonym sposobem na to jest użycie ljust
n = 6
for x in range(n - 1, 0, -1):
print "".ljust(x, " ") + "*".ljust(n - x, "*")
for x in range(n):
print "".ljust(x, " ") + "*".ljust(n - x, "*")
2 dla odpowiedzi nr 2
Twoje pętle są nieco zawikłane, więc nieco uprościliśmy:
n = int(input("Enter a value for n: "))
for x in range(n):
out = ""
for y in range(n-x):
out = out +" "
for y in range(x):
out = out +"*"
print(out)
for x in range(n):
out = ""
for y in range(x):
out = out +" "
for y in range(n-x):
out = out +"*"
print(out)
Cieszyć się!
0 dla odpowiedzi № 3
To, czego chcesz w drugim zestawie pętli, toweź numer wiersza (licząc od 1) i wydrukuj tyle spacji (""), a następnie wydrukuj gwiazdki ("*") w pozostałej części wiersza. Więc jeśli i jest numerem wiersza, a j numerem kolumny (i indeksowaniem zaczyna się od 0), powinieneś wydrukować "", podczas gdy j <i + 1 i "*" inaczej. To daje:
# The top part of the pyramid
for i in range(1, n + 1):
for j in range(n):
if n - j > i:
print(" ", end = " ")
else:
print("*", end = " ")
print("")
# The bottom half of the pyramid
for i in range(n):
for j in range(n):
# Print spaces in the beginning of the row
# (while the column number is less than the row number)
if j < i + 1:
print(" ", end = " ")
# Print asterisks for the rest of the row
else:
print("*", end = " ")
print("")