2013-07-06 2 views
-6

Если у меня есть кодPython избыточность

i = 0 
while i < N: 
    print("Hello") 
    i += 1 

сколько раз Привет распечатывается? (Предположим, что N является определенным целым числом)

Ответы:

  1. N
  2. N-1
  3. N + 1
  4. больше, чем N + 1

и почему? Я никогда этого не понимаю, поэтому я бы оценил, что кто-то может объяснить.

+0

Будет напечатан N раз. i начинается с 0. Ваше условие требует, чтобы выход цикла, если i не меньше N. Но поскольку ваш индекс начинается с 0, он будет напечатан ровно N раз. Попробуйте заменить «Hello» на переменную i. Я думаю, что это будет в перспективе. –

+0

Вы пытались это исправить, исходя из вашего понимания цикла while? – user4815162342

+0

Это легко попробовать: http://ideone.com/N6SU1N –

ответ

2

Здравствуйте, распечатайте N раз. предположить N равно 3.

первой итерации i = 0 i меньше N

print hello 
i = i + 1; // i = 1 

второй итерации i = 1; я ` is less than N (3) `

print hello 
i = i + 1; // i = 2 

третьей итерации i = 2; i меньше N (3)

print hello 
i = i + 1; // i = 3 

4 итерации i = 3; i равно N (3) петли разрыв

+0

Это имеет смысл для меня, как бы ваш пример был с N + 1? –

+0

Это не так, потому что N + 1 не является ответом ... – JcKelley

+2

N + 1 (приведенный выше пример) будет N = 4, поэтому он будет печатать привет 4 раза –

5

Лучший способ понять это - пройти через это вручную для нескольких управляемых значений N. Например, если N является 2:

  • i == 0 и 0 < 2 → Печать "hello", увеличивает i
  • i == 1 и 1 < 2 → Печать "hello", не увеличивает i
  • i == 2 и 2 < 2 while -loop состояния нет дольше удовлетворены → концы петли

И для N = 2, "hello" печатается 2 раза. См. Шаблон?

2

Как описано другие ответы, он будет печатать N раз, потому что она начинается с 0 и продолжается до тех пор, это как раз перед N, не равным N.

В действительности, однако, это очень избыточно в Python.Гораздо более простой способ сделать это, что делает его немного более удобным для чтения (и, надеюсь, легче для вас, чтобы понять):

N=3 
for x in range(0,N): 
    print "This is loop %d" % (x) 

Этот цикл будет печатать из 0 to N, который на самом деле просто N количество раз.

Смежные вопросы