新学习者,无法承受以下程序的输出。
PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
i = 0
Rating = PlayListRatings[0]
while(i < len(PlayListRatings) and Rating >= 6):
print(Rating)
Rating = PlayListRatings[i]
i = i + 1
输出
10
10
9.5
10
8
7.5
为什么10,10在一起?为什么会有第三个10?为什么威尔的循环没有在5点中断?
如果将while
循环中的i = i + 1
语句上移一行,则代码将正常工作。
First将分割出单独的行,以便您更容易理解。
PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
在这里,您声明了一个数字数组,无论何时选择数组的0th
索引都将变为10
。
i = 0
//这里声明了一个迭代器,其初始值为0
Rating = PlayListRatings[0]
正如我所说,在这一行中,Rating
变量初始化将具有值10
,因为它是Array 的0th
索引
while(i < len(PlayListRatings) and Rating >= 6):
print(Rating)
Rating = PlayListRatings[i]
i = i + 1
因此,在循环中,初始条件将是迭代器i
小于8
(数组的总长度(和Rating
大于或等于6
。当然,这是因为它包含来自数组的0th
索引值10
。因此,该循环将仅中断,直到值5
在Rating
变量中被替换,也就是在7.5
之后。
在这里,第一个打印将是10
,然后在每次迭代中,Rating
变量分别被0、1、2…索引值替换,因此10(评级变量中的默认值优先(、10(第0个索引(、9.5(第1个索引(和10(第2个索引(如.