我不明白为什么在while循环i=1
的示例中?
我以为它从索引0
开始,但是当我放置i=0
时,结果是错误的(它在开始时打印10
两次)。
PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]
i = 1
Rating = PlayListRatings[0]
while(Rating >= 6):
print(Rating)
Rating = PlayListRatings[i]
i = i + 1
答案 0 :(得分:0)
它从z1z开始,因为它是通过分配列表的第一个元素(索引0)在循环外部初始化Rating
。
如果您将i=0
放在循环中,则在第一次迭代时会进行print(Rating)
,然后重新分配Rating = PlayListRatings[i]
,但索引尚未增加,因此在下一次打印时{{1} }仍然是第一个元素。
如果在增量之后移动Rating
,则它应该可以工作:
Rating = PlayListRatings[i]
或者实际上:
i = 0
Rating = PlayListRatings[0]
while(Rating >= 6):
print(Rating)
i = i + 1
Rating = PlayListRatings[i]
答案 1 :(得分:0)
如果您愿意,可以应用函数式编程:
>>> import itertools
>>> list(itertools.takewhile(lambda x: x >= 6, [10, 9.5, 10, 8, 7.5, 5, 10, 10]))
[10, 9.5, 10, 8, 7.5]