【发布时间】:2015-12-17 13:38:19
【问题描述】:
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
谁能告诉我每一行的作用?
【问题讨论】:
标签: 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
谁能告诉我每一行的作用?
【问题讨论】:
标签: python loops while-loop
我会保持非常简单,因为这是非常基本的东西。
i = 10
变量i被初始化为10。
while i > 0:
print i*'*' + 2*(10-i)*' ' + i*'*'
i -= 1
当变量 i 大于 0 时,它会打印字符串 * i 次,空格 2 * (10 - i) 次,然后再次打印字符串 * i 次。每个循环它都会从 i 中减去 1,因此 i 以 10 开始并一直下降到 1。这会产生以下三角形/金字塔:
********************
********* *********
******** ********
******* *******
****** ******
***** *****
**** ****
*** ***
** **
* *
for x in range(2,11):
print x* '*' + 2*(10-x)*' '+ x*'*'
x += 1
这里的变量 x 从 2 开始并一直递增到 10,这导致上述三角形的倒置版本(不完全是,但如果您使用 range(1, 11) 代替,则会出现这种情况)。 x += 1 在这里也是多余的,因为 range 函数已经以 1 的步长递增 x(因为省略了 step 参数)。您可以通过运行以下代码自己查看:
for x in range(1, 11):
print x
【讨论】: