в то время как l oop: число меньше числа в Python - PullRequest
1 голос
/ 16 июня 2020

Это мой первый пост здесь. Извините, если это не правильный способ. В следующем коде есть три итерации цикла. Я могу понять почему. Но мне нужно, чтобы его было всего 2. А как это сделать?

weeks_x = 0
weeks_year = 52

count = 0

while weeks_x < weeks_year:
   weeks_x = weeks_x + 25
   count = count + 1

Ответы [ 3 ]

0 голосов
/ 16 июня 2020

Добавление оператора print() может быть полезно при отладке:

weeks_x = 0
weeks_year = 52
count = 0
while weeks_x < weeks_year:
    print('weeks_x:', weeks_x, '- weeks_year', weeks_year)
    weeks_x = weeks_x + 25
    count =+ 1

вывод:

weeks_x: 0 - weeks_year 52
weeks_x: 25 - weeks_year 52
weeks_x: 50 - weeks_year 52

Если вам конкретно понадобились две l oop итерации:

weeks_x = 0
weeks_year = 52
count = 0
while count < 2:
    print('weeks_x:', weeks_x, '- weeks_year', weeks_year)
    weeks_x = weeks_x + 25
    count =+ 1

count переменная подсчитывает количество циклов.

В качестве альтернативы, weeks_x * 2 даст тот же результат, что и l oop - в противном случае, если есть функциональность, которая требует этого, я предлагаю поискать в for loops с range().

0 голосов
/ 16 июня 2020

Инициализация до while

weeks_x = 0
weeks_year = 52

count = 0

weeks_x += 25
while weeks_x < weeks_year:
  count += 1
  print('Count {}'.format(count), 'Week Value {}'.format(weeks_x), sep='-->', end='\n')
  weeks_x += 25

Вывод: -

Count 1-->Week Value 25
Count 2-->Week Value 50
0 голосов
/ 16 июня 2020

Попробуйте отладить свой код с помощью простых операторов print

weeks_x = 0
weeks_year = 52

count = 0

while weeks_x < weeks_year:
   weeks_x = weeks_x + 25
   count = count + 1
   print(f'Iteration Number {count} and weeks_x is {weeks_x}')

В выводе становится ясно, почему l oop выполняется 3 раза

Iteration Number 1 and weeks_x is 25
Iteration Number 2 and weeks_x is 50
Iteration Number 3 and weeks_x is 75

Поскольку только после 3-я итерация, значение weeks_x достаточно, чтобы нарушить это условие weeks_x < 52 проходит 3 оборота

Вы можете ограничить количество прогонов l oop

weeks_x = 0
weeks_year = 52

count = 0

# while weeks_x < weeks_year: # REMOVE THIS
while count < 2: # ADD THIS
   weeks_x = weeks_x + 25
   count = count + 1
   print(f'Iteration Number {count} and weeks_x is {weeks_x}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...