i = 10
while i > 0:
print i*'*' + 2*(10-i)*' ' + i*'*'
i -= 1
for x in range(2,11):
print x* '*' + 2*(10-x)*' '+ x*'*'
x += 1
有人能告诉我每条线的作用吗?
答案 0 :(得分:1)
我会保持简单,因为这是非常基本的东西。
i = 10
变量i
初始化为10。
while i > 0:
print i*'*' + 2*(10-i)*' ' + i*'*'
i -= 1
当变量i
大于0时,它会打印字符串*
i
次,空格2 * (10 - i)
次,然后是字符串*
{再次{1}}次。每个循环都会从i
中减去1,因此i
从10开始,一直向下变为1.这会产生以下三角形/金字塔:
i
********************
********* *********
******** ********
******* *******
****** ******
***** *****
**** ****
*** ***
** **
* *
此处变量for x in range(2,11):
print x* '*' + 2*(10-x)*' '+ x*'*'
x += 1
从2开始并一直递增到10,这导致上面三角形的颠倒版本(不完全是,但如果您使用x
代替它)。此处range(1, 11)
也是多余的,因为x += 1
函数已经以1为步长递增range
(因为省略了 step 参数)。您可以通过运行以下代码自行查看:
x