[英]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.