我是编程新手,需要一些基本程序的帮助: 输出应该是:
*****
****
***
**
*
答案 0 :(得分:1)
有几种方法可以做到这一点。第一种方式,虽然肯定不是最快捷的方式,但只需在新线上手动打印星星就像这样:
print"*****"
print" ****"
print" ***"
print" **"
print" *"
现在,虽然你可以做到这一点,但我们当然是一种低效的做事方式。
所以我们可以做一个循环来打印一条新线上的星星,每一条新线都比上一条线少一颗星。这样做是这样的:
for x in xrange(5, 0, -1):
print "*" * x
现在问题是这给了我们输出:
*****
****
***
**
*
您想要添加空格,这不是您想要的。因此,我们将创建一个额外的变量,每次循环迭代时都会添加更大的空间:
space = 0
for x in xrange(5, 0, -1):
print (" " * space) + ("*" * x)
space +=1
现在让我们看一下输出:
*****
****
***
**
*
Huzzah!由于我们添加了变量,程序现在在那里添加了空格。
如果您有兴趣了解有关python的更多信息,我建议您查看:Python Documentation文档适用于python-3.4.1,但大多数方面仍然适用于python-2.7
上述循环如何正常工作?基本上,我们告诉python要做的是:
“我们希望x在循环中最多为5,最小为1. 你完成循环,我希望你从x“
中减去1
这可以这样看:
space = 0 # Set it to zero so we can use it in the loop to account for the spaces. Note how I declared it outside the loop so it does not reset each time the loop is run.
for x in xrange(min, max, step):
print (" " * space) + ("*" * x) # I want you to concatenate space(s) and the asterisks together.
space += **1** # Add 1 to space so next time the loop reiterates the space will be larger by **1**