def gukan(count):
while count!=100:
print(count)
count=count+1;
gukan(0)
Мой вопрос: когда я пытаюсь увеличивать на 3 или 9 вместо 1 в count=count+1
, я получаю бесконечный цикл - почему?
def gukan(count):
while count!=100:
print(count)
count=count+1;
gukan(0)
Мой вопрос: когда я пытаюсь увеличивать на 3 или 9 вместо 1 в count=count+1
, я получаю бесконечный цикл - почему?
Когда вы меняете count = count + 1
на count = count + 3
или count = count + 9
, count
никогда не будет равно 100. В лучшем случае это будет 99. Этого недостаточно.
Что у вас здесь есть классический случай бесконечного цикла: count
никогда не равен 100 (конечно, в какой-то момент он будет больше 100, но ваш цикл while
не проверяет это условие) и цикл while
продолжается и продолжается.
Вероятно, вы хотите:
while count < 100: # Or <=, if you feel like printing a hundred.
Не:
while count != 0: # Spaces around !=. Makes Guido van Rossum happy.
Теперь цикл завершится, когда count >= 100
.
Посмотрите на Python документация.
В ответах здесь указано, что, поскольку после инкрементного счета он не равен точно 100, он продолжает идти, поскольку критерии не выполняются (вероятно, вы хотите <
сказать менее 100).
Я просто добавлю, что вы действительно должны смотреть на встроенную функцию Python range
, которая генерирует последовательность целых чисел из начального значения, вплоть до (но не включая) другое значение и необязательный шаг - так что вы можете отрегулируйте добавление 1 или 3 или 9 за один раз...
0-100 (но не включая 100, значения по умолчанию от 0 и шаг 1):
for number in range(100):
print(number)
0-100 (но не включая и число, которое не превышает 100) с шагом 3:
for number in range(0, 100, 3):
print(number)
Ваш счетчик никогда не равен значению 100, поэтому ваш цикл будет продолжаться до тех пор, пока это не будет истинным.
Замените предложение while с помощью
def gukan(count):
while count < 100:
print(count)
count=count+3;
gukan(0)
и это устранит вашу проблему, программа будет выполняться правильно, учитывая условия, которые вы им предоставили.
потому что если вы измените свой код с помощью
def gukan(count):
while count!=100:
print(count)
count=count+3;
gukan(0)
count достигает 99, а затем на следующей итерации 102.
Итак,
count != 100
никогда не вычисляет true, и цикл продолжается навсегда
Если вы хотите подсчитать до 100, вы можете использовать
def gukan(count):
while count <= 100:
print(count)
count=count+3;
gukan(0)
или (если вы хотите, чтобы 100 всегда печатались)
def gukan(count):
while count <= 100:
print(count)
count=count+3;
if count > 100:
count = 100
gukan(0)
рассмотрим следующее:
def gukan(count):
while count < 100:
print(count)
count=count+3;
gukan(0) #prints ..., 93, 96, 99
def gukan(count):
while count < 100:
print(count)
count=count+9;
gukan(0) # prints ..., 81, 90, 99
вы должны использовать count < 100
, потому что count
никогда не достигнет точного числа 100, если вы используете 3 или 9 в качестве приращения, тем самым создавая бесконечный цикл.
Удачи! ~:)
Когда вы используете count = count + 3 или count = count + 9 вместо count = count + 1, значение count никогда не будет равно 100, и, следовательно, оно войдет в бесконечный цикл.
Вы можете использовать следующий код для вашего условия для работы
в то время как count < 100:
Теперь цикл завершится, когда count >= 100.
Первая строка определяет переменную. Вторая строка выполняет цикл до 100, третий добавляет 1 к а, а четвертый делится на 3, а если нет остатка (0), он будет печатать это число, иначе он будет печатать пустую строку.
a = (0)
for i in range(0,100):
a = a + 1
if a % 3 == 0:
print(a)
else:
print("")
Потому что условие никогда не является истинным.
т.е. count!= 100 никогда не выполняется, когда вы ставите count = count + 3 или count = count + 9.
попробуйте это.. while count<100