我没有得到期望的输出。输出应为小于6的值序列。语法是否有误?我认为它有非常简单的错误!我不明白。
编写一个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,20,10]
rating=0
i=0
while rating<6:
rating=PlayListRatings[i]
i=i+1
print(rating)
>>output 10
答案 0 :(得分:0)
我认为使用for循环会更容易:
for item in PlayListRatings:
if item < 6:
break
print(item)
如果必须使用while循环:
index = 0
while index < len(PlayListRatings) and PlayListRatings[index] > 6:
print(PlayListRatings[index])
index += 1
答案 1 :(得分:0)
您定义I=0
,然后使用i=i+1
。 Python区分大小写,因此您需要使用相同的大小写(即设置i=0
而不是I=0
)。
如果分数小于6,则退出循环。
这意味着您的while条件不正确。应该是while rating >=6
。
我强烈建议您查看条件语句,循环和基本python语法。
答案 2 :(得分:0)
通常在不知道循环何时结束的情况下使用循环,而在知道循环将结束的情况下,for循环会更好。 在您的示例中,您正在遍历列表,最好使用for循环。
答案 3 :(得分:0)
看看这个:
PlayListRatings=[10,9.5,10,8,7.5,5,20,10]
rating=0
i=0
while i != len(PlayListRatings):
rating = PlayListRatings[i];
if rating < 6: print(rating);
i=i+1;
我知道while
循环逻辑需要一些时间来习惯。构建while循环时,您需要考虑以下几点:
在构建while循环时:控制 while 循环的逻辑必须为负。
## don't run this , it is an infinite loop
iDontWantThis = false; # starting argument
# it is always false, so the loop will go forever
while iDontWantThis == false:
print("I want this");
因此,当迭代某种列表时,退出循环时控制的逻辑一定不能与希望在循环内部实现的逻辑相同。这是while
和for
循环之间的主要区别。
在您的情况下,您的主要逻辑是打印出列表中小于6的任何元素,因此在while循环中,您需要具有以下任一逻辑:
1.对于rating
大于6
2.对于小于列表长度的i
索引
3. break
的无限循环在while循环内指向。
Python区分大小写:这意味着
I
和i
不是同一变量。但这甚至可能发生在有经验的程序员身上。
循环构建的初学者:开始学习
while
循环时。最好的做法是从无限循环开始,然后在需要的地方执行中断。当您的代码有效时,您可以对其进行优化,以免行数过多,并且速度更快。