[英]Number half Pyramid Python
我正在嘗試在python的左側打印一個星形的半金字塔。 到目前為止,這是我的代碼
for i in range(1,12):
for j in range(12 - i):
print(" ", end = " ")
for j in range(1, i):
print(j, end = " " )
print("\n")
我的輸出是
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
但是,我的輸出將按照相反的順序進行:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
我該如何進行更改?
只需倒轉第二個循環-即可打印出實際數字的循環:
for j in range(i-1, 0, -1):
最后一個參數控制“步”,或變量在每次循環迭代中的變化量。 輸出:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
...
通過添加第三個參數( -1
)來反轉范圍。 還要將數字格式化為使用2位,因此10不會將最后一行推到右側。 最后,最后一個print
可能應該沒有\\n
,因為那已經是print
的默認結束字符:
for i in range(1,12):
for j in range(12 - i):
print(" ", end = "")
for j in range(i-1, 0,-1):
print(str(j).rjust(2), end = "" )
print()
您可以反轉打印為數字的范圍
for i in range(1,12):
for j in range(12 - i):
print(" ", end = " ")
for j in reversed(range(1, i)):
print(j, end = " " )
print("\n")
問題出在第二個for循環中,因為您要從1
循環到i
,這意味着您首先打印1,然后再打印每個數字,直到(不包括) i
為止。
幸運的是,for循環可以反向進行。 因此,代替:
for j in range(1, i)
您可以這樣寫:
for j in range((i-1), 0, -1)
第一個參數表示循環開始的位置,第二個參數表示循環結束的位置,第三個參數表示我們的跳轉將達到多少,在這種情況下為負。 我們從i-1
並在0
處結束的原因是因為循環正好從第一個給定數字開始,然后循環直到第二個給定數字之前,所以在您給定的代碼中,循環就在i
之前停止,所以這個也可以在i
之前開始,但是如果希望在金字塔中包含12,則可以刪除-1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.