Python - пока цикл - новичок - PullRequest
0 голосов
/ 25 января 2019

Я не понимаю, почему в этом примере цикла 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

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы можете применить функциональное программирование, если вы открыты для этого:

>>> 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]
0 голосов
/ 25 января 2019

Он начинается с z1z, потому что он инициализирует Rating вне цикла, назначая первый элемент (индекс 0) списка.

Если вы поместите 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...