有人可以解释所有代码的含义吗?蟒蛇

时间:2015-09-20 23:19:02

标签: python loops while-loop

    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

有人能告诉我每条线的作用吗?

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