Python-While循环-初学者

时间:2019-01-25 11:19:43

标签: python while-loop

我不明白为什么在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

2 个答案:

答案 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]