這裏有一個函數來做到這一點:
def text_triangle(base, char):
return '\n'.join(' ' * (base-i) + char * i for i in range(1, base+1))
print(text_triangle(6, 'o'))
不打算舉行的事實,你剛剛張貼的截圖反對你,因爲這個問題有很多事情要做的格式,這是很難在降價來表示。
編輯
你得到的每行空格正確的號碼(好樣的!)。您的代碼存在的問題是,您只需在每行上放置一個'o'
,而不是用'o'
填充行的其餘部分。
base = 6
for r in range(base-1, -1, -1):
for blank in range(0, r):
print(' ', end='')
for o in range(r, base):
print('o', end='')
print()
要做到這一點,我們可以只寫另一個嵌套的循環,其中最後嵌套的循環不放過,在r
,並且去,直到行,base
結束拾取。最後,我們需要調用print()
,在主for循環的底部沒有參數來獲取換行符。我希望這比我以前的快速回答更具解釋力。
上述內容符合老師的要求,但遠不是最好的解決方案。如果讓我來回答這個問題,沒有任何限制(即使用嵌套的for循環),我可能會做這樣的事情:
base = 6
for r in range(base):
print('{:>{}}'.format('o' * (r+1), base))
該解決方案使用str.format()
和format specification mini-language右對齊'o'
的。
來源
2016-03-04 20:38:24
pzp
也許你應該將你的代碼複製粘貼到問題中,而不是向我們展示它的圖片。 –
請將您的圖片內容作爲您的帖子中的代碼提交 – phenxd
您的老師是否允許您在網上尋求幫助?因爲他們有很多工具可以幫助找到試圖欺騙的學生。 – JDB