我来自谷歌App Inventor的背景。我正在上网。
任务:使用嵌套的while循环从星号中创建一个三角形。三角形的底座有19个星号,高度为10个星号。
这就是我的地方。
Num = 1
while Num <= 19:
print '*'
Num = Num * '*' + 2
print Num
答案 0 :(得分:1)
你在做什么 Num = Num *'*'+ 2 如下:
答案 1 :(得分:1)
这是一个很酷的技巧 - 在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
答案 2 :(得分:1)
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
答案 3 :(得分:0)
通常你不会使用嵌套的while循环来解决这个问题,但这是一种方式
rows = 10
while rows:
rows -=1
cols = 20
line = ""
while cols:
cols -=1
if rows < cols < 20-rows:
line += '*'
else:
line += ' '
print line
答案 4 :(得分:0)
(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
答案 5 :(得分:0)
你可以使用字符串对象中的'center'方法:
width = 19
for num in range(1, width + 1, 2):
print(('*' * num).center(width))
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************