我來自Google的App Inventor背景。我正在參加在線課程。Asterisk Triangle
任務:用嵌套的while循環圈出星號。三角形有19個星號的基數和10個星號的高度。
這就是我的位置。
Num = 1
while Num <= 19:
print '*'
Num = Num * '*' + 2
print Num
我來自Google的App Inventor背景。我正在參加在線課程。Asterisk Triangle
任務:用嵌套的while循環圈出星號。三角形有19個星號的基數和10個星號的高度。
這就是我的位置。
Num = 1
while Num <= 19:
print '*'
Num = Num * '*' + 2
print Num
可以使用從字符串對象的「center'法:
width = 19
for num in range(1, width + 1, 2):
print(('*' * num).center(width))
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
你與 民=民做* '*' + 2 如下:
這是一個很酷的技巧 - 在Python中,你可以乘以一個數一個字符串*
,它將成爲連接在一起字符串的許多副本。
>>> "X "*10
'X X X X X X X X X X '
你還可以用+
連接兩個字符串在一起:
>>> " "*3 + "X "*10
' X X X X X X X X X X '
所以Python代碼可以是一個簡單的for循環:
for i in range(10):
s = ""
# concatenate to s how many spaces to align the left side of the pyramid?
# concatenate to s how many asterisks separated by spaces?
print s
通常你不會使用嵌套while this loop for this problem,but here's one way
rows = 10
while rows:
rows -=1
cols = 20
line = ""
while cols:
cols -=1
if rows < cols < 20-rows:
line += '*'
else:
line += ' '
print line
n = 0
w = 19
h = 10
rows = []
while n < h:
rows.append(' '*n+'*'*(w-2*n)+' '*n)
n += 1
print('\n'.join(reversed(rows)))
可生產
*
***
*****
*******
*********
***********
************* #etc...
*************** #2 space on both sides withd-4 *
***************** #1 space on both sides, width-2 *
******************* #0 spaces
>>> len(rows[-1])
19
>>> len(rows)
10
(count - 1) * 2 + 1
計算每行中的星號的數目。
count = 1
while count <= 10:
print('*' * ((count - 1) * 2 + 1))
count += 1
當然你可以去簡單的方法。
count = 1
while count <= 20:
print('*' * count)
count += 2
感謝您的建議!這對我來說似乎也很容易理解,但我需要找到一種方法來調整它,使其看起來更像這裏的照片示例https://sites.google.com/site/colinclaytonappinventor/python-work我想這是在哪裏我會使用嵌套while循環,但我很困惑我會調整。從應用發明者這樣的塊語言到Python的過渡一直有點困難...... – user2376566 2013-05-13 09:17:13
謝謝您的建議!這對我來說合乎邏輯...但我唯一的問題是現在弄清楚如何使這看起來像這裏的例子一樣:https://sites.google.com/site/colinclaytonappinventor/python-work(我couldn' t因爲我是一個新成員,以任何其他方式張貼金字塔的圖像)我將如何翻轉它? – user2376566 2013-05-13 09:13:06