我制作了一个程序,允许用户输入钻石的高度,并使用循环在星号中打印出一个。我的代码现在看起来像这样:
diamond = int(input("Height": )
for i in range(diamond-1):
print((diamond-i) * " " + (2*i+1) * "*")
for i in range(diamond-1, -1, -1):
print((diamond - i) * " " + (2 * i + 1) * "*")
钻石看起来很完美(钻石== 6):
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
现在,如果我进行一些更改,而是像这样编写反向循环:
for i in reversed(range(diamond-1)):
print((diamond - i) * " " + (2 * i + 1) * "*")
它将打印出这样的钻石:
*
***
*****
*******
*********
*********
*******
*****
***
*
所以我的问题是:第一个向后循环和我写的第二个循环有什么区别?为什么他们变得如此不同?
答案 0 :(得分:2)
因为它们的范围不同:
>>> diamond = 6
>>> range(diamond-1, -1, -1)
[5, 4, 3, 2, 1, 0]
>>> list(reversed(range(diamond-1)))
[4, 3, 2, 1, 0]
range
包含起点,但不包括终点。