首页 > 解决方案 > 关于while循环的问题

问题描述

嗨,我是 Python 新手,我在这里遇到了这个问题。

编写一个while循环来显示存储在列表PlayListRatings中的专辑播放列表的Rating值。如果分数小于 6,则退出循环。PlayListRatings 列表由下式给出: PlayListRatings = [10, 9.5, 10, 8, 7.5, 5, 10, 10]


我的回答是这样的:

PlayListRatings = [10,9.5,10,8,7.5,5,10,10]

i = 0

while PlayListRating[i] >= 6:

    i = i + 1

print(PlayListRatings)

建议的答案是这样的:

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

有几件事让我感到困惑:

  1. 在这种情况下,为什么 i=1 而不是 i=0?我以为 i 指的是 10 的索引,因此应该 i=0?
  2. 为什么我必须创建一个新变量,即 Rating?
  3. 为什么我必须添加建议答案的倒数第二行,即 Rating = PlayListRatings[i]?没有那行我无法执行代码

标签: pythonloopsfor-loopwhile-loop

解决方案


  1. 由于您已经在循环之外使用了数组的第一个元素(在索引 0 处):

    Rating = PlayListRatings[0]

所以循环将从第二个索引(i = 1)继续

  1. 变量 Rating 只是一个指向数组元素的指针。你不必使用它,你可以直接替换它PlayListRatings[i]

  2. 由于 while 循环的条件取决于 的值Rating,如果不更新 的值Rating,则 while() 中的条件将在每次迭代时保持不变,在这种情况下,因为Rating第一个取值 10时间(因为 10 是数组的第一个元素),如果 的值没有更新,这将导致无限循环Rating,这发生在Rating = PlayListRatings[i]


推荐阅读