python - 关于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
有几件事让我感到困惑:
- 在这种情况下,为什么 i=1 而不是 i=0?我以为 i 指的是 10 的索引,因此应该 i=0?
- 为什么我必须创建一个新变量,即 Rating?
- 为什么我必须添加建议答案的倒数第二行,即 Rating = PlayListRatings[i]?没有那行我无法执行代码
解决方案
由于您已经在循环之外使用了数组的第一个元素(在索引 0 处):
Rating = PlayListRatings[0]
所以循环将从第二个索引(i = 1)继续
变量 Rating 只是一个指向数组元素的指针。你不必使用它,你可以直接替换它
PlayListRatings[i]
由于 while 循环的条件取决于 的值
Rating
,如果不更新 的值Rating
,则 while() 中的条件将在每次迭代时保持不变,在这种情况下,因为Rating
第一个取值 10时间(因为 10 是数组的第一个元素),如果 的值没有更新,这将导致无限循环Rating
,这发生在Rating = PlayListRatings[i]
推荐阅读
- c++ - 仅当在 Visual Studio 2019 中以 C++ 模式编译静态库时才链接代码
- bash - 在启动 Bash 脚本中更改命令
- php - 交响乐。如何使用一对多的表格创建表单汽车搜索?
- apache-kafka - 暂停消费者一段时间后数据丢失
- vue.js - 在操作中访问状态显示为空状态
- rundeck - Rundeck SSH 执行
- android - Android 中的促销代码、实施和验证
- vba - 即使我已经做出了所有必要的声明并设置了我的变量,也会出现编译错误('需要对象)
- python - 根据第一个空格拆分列中的文本,将唯一值放入列表中
- oop - 如何在 f# 中引用同一类中的方法?