Подтвердить что ты не робот

Основы Python печати от 1 до 100

def gukan(count):
    while count!=100:
      print(count)
      count=count+1;
gukan(0)

Мой вопрос: когда я пытаюсь увеличивать на 3 или 9 вместо 1 в count=count+1, я получаю бесконечный цикл - почему?

4b9b3361

Ответ 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 документация.

Ответ 2

В ответах здесь указано, что, поскольку после инкрементного счета он не равен точно 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)

Ответ 3

Ваш счетчик никогда не равен значению 100, поэтому ваш цикл будет продолжаться до тех пор, пока это не будет истинным.

Замените предложение while с помощью

def gukan(count):
    while count < 100:
      print(count)
      count=count+3;
gukan(0)

и это устранит вашу проблему, программа будет выполняться правильно, учитывая условия, которые вы им предоставили.

Ответ 4

потому что если вы измените свой код с помощью

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)

Ответ 5

рассмотрим следующее:

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 в качестве приращения, тем самым создавая бесконечный цикл.

Удачи! ~:)

Ответ 6

Когда вы используете count = count + 3 или count = count + 9 вместо count = count + 1, значение count никогда не будет равно 100, и, следовательно, оно войдет в бесконечный цикл.

Вы можете использовать следующий код для вашего условия для работы

в то время как count < 100:

Теперь цикл завершится, когда count >= 100.

Ответ 7

Первая строка определяет переменную. Вторая строка выполняет цикл до 100, третий добавляет 1 к а, а четвертый делится на 3, а если нет остатка (0), он будет печатать это число, иначе он будет печатать пустую строку.

 a = (0)

for i in range(0,100):
     a = a + 1
if a % 3 == 0:
    print(a)
else:
    print("")

Ответ 8

Потому что условие никогда не является истинным. т.е. count!= 100 никогда не выполняется, когда вы ставите count = count + 3 или count = count + 9. попробуйте это.. while count<100