繁体   English   中英

Python - while 循环 - 初学者

[英]Python - while loop - beginner

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

它从 z1z 开始,因为它通过分配列表的第一个元素(索引 0)在循环外初始化Rating

如果你把i=0放在第一次迭代的循环内,它会print(Rating)然后重新分配Rating = PlayListRatings[i]但索引还没有增加,所以在下一次打印时Rating仍然是第一个元素。

如果您在增量后移动Rating = PlayListRatings[i]那么它应该可以工作:

i = 0
Rating = PlayListRatings[0]
while(Rating >= 6):
    print(Rating)
    i = i + 1
    Rating = PlayListRatings[i]

或者实际上:

i = 0
while True:
    Rating = PlayListRatings[i]
    if (Rating<6):
        break
    print(Rating)
    i = i + 1

如果你愿意,你可以应用函数式编程:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM