如何使用while循环获取输出?

时间:2019-09-05 01:06:03

标签: python

我没有得到期望的输出。输出应为小于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

4 个答案:

答案 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");

因此,当迭代某种列表时,退出循环时控制的逻辑一定不能与希望在循环内部实现的逻辑相同。这是whilefor循环之间的主要区别。

在您的情况下,您的主要逻辑是打印出列表中小于6的任何元素,因此在while循环中,您需要具有以下任一逻辑:
     1.对于rating大于6
     2.对于小于列表长度的i索引
     3. break的无限循环在while循环内指向。

  •   

    Python区分大小写:这意味着Ii不是同一变量。但这甚至可能发生在有经验的程序员身上。

  •   

    循环构建的初学者:开始学习while循环时。最好的做法是从无限循环开始,然后在需要的地方执行中断。当您的代码有效时,您可以对其进行优化,以免行数过多,并且速度更快。