我通過過去的測試和代碼的輸出會是這樣的:Python 3的初級 - 迭代三角
Enter the height:
5
5
44
333
2222
11111
我要記下代碼 - 到目前爲止,我知道如何使一個正常的三角形與:
for i in range(5):
print('*'*i)
*
**
***
****
我的主要問題是如何獲得身體,如果三角形迭代數字?
那麼第一個三角形的代碼是什麼? 幫助,將不勝感激:)
我通過過去的測試和代碼的輸出會是這樣的:Python 3的初級 - 迭代三角
Enter the height:
5
5
44
333
2222
11111
我要記下代碼 - 到目前爲止,我知道如何使一個正常的三角形與:
for i in range(5):
print('*'*i)
*
**
***
****
我的主要問題是如何獲得身體,如果三角形迭代數字?
那麼第一個三角形的代碼是什麼? 幫助,將不勝感激:)
該代碼,這幾乎是一樣的,你只需要改變的打印每個字符的次數,並更改*
您正在打印到一個數字。
for i in range(5):
print(str(5-i) * (i+1))
這產生:
5
44
333
2222
11111
,使其在你的榜樣右對齊一樣,只是使用字符串乘上一個空格字符。
for i in range(5):
print(' ' * (4-i) + str(5-i) * (i+1))
這將讓你:
5
44
333
2222
11111
格式化字符串&間距與外部陣列和否定的變量。
def height(num):
rangenum=range(num+1)
for i in rangenum:
print(("%"+str(num)+"s")%(i*str(rangenum[-i])))
print("%(spacing as a number)s"%(a string))
返回
(spacing as a number)-(a string)
例如:
print("%10s"%"this")
回報:
" this"
邊注:
%-(a number)s
是正確的。
(儘管蟒蛇試圖削減數以百萬計的方式做同樣的事情,仍然有成千上萬)
一些其他的答案已經基本上是正確的,但是這一次右對齊你的三角形像原始輸出一樣。
def print_triangle(rows):
for i in range(rows + 1):
print((str(rows + 1-i)*i).rjust(rows))
height = 5
for i in range(height, 0, -1):
empty_chars = ' ' * (i - 1)
filler_chars = str(i) * (height - i + 1)
print('{}{}'.format(empty_chars, filler_chars))
_Going通過過去TEST_:你真的應該採取一些揣摩如何做到這一點。 – devnull
你是對的 - 我正在懶惰。對不起,下次會做得更好:) – user3490976
也謝謝大家的幫忙。 – user3490976