2016-02-19 4 views
-3

Я запускаю этот код в PYTHON из видео Youtube; его предполагается остановить цикл на 100, но он идет выше. Кто-нибудь знает, где может быть ошибка?Почему этот цикл кода за 100?

import random 

sarge_is_awake = True 
count = 0 

while sarge_is_awake: 
    print "Down!" 
    print "Up!" 
    count = count + 1 
    print str(count) + " done" 

    if random.randrange (0, 100) == 0: 
     sarge_is_awake = False 
+1

На каком языке это Python? Измените свой вопрос и добавьте соответствующий языковой тег. Спасибо! –

+2

Вы могли бы отступать от кода? также это может быть из-за случайного ... он остановится в какой-то случайной точке – Hacketo

+0

Вот как код с отступом. #TJ Кроудер упомянул счетчик; как бы я это сделал? Как это вписывается в код? Я изменил строку 9 на «count + = 1»; однако это не влияет. –

ответ

4

Согласно the documentation, randrange возвратит число в заданном диапазоне. Он не говорит ничего о не возвращаясь в тот же номер дважды, так что ваш код будет держать зацикливание, пока случайно не происходит, чтобы вернуться 0, которые могли бы взять одну петлю, или 100, или 200, или ...

Если вы хотите чтобы остановить после 100 циклов, вам нужно ввести счетчик.

+3

Pff .. детерминизм для слабовидящих. – Neil

+0

@Neil: :-) .... –

1

Если вы хотите, чтобы сделать эту петлю случайное число раз в диапазоне от 0 до 100, вы хотите что-то вроде

import random 

count = 0 
desired_count = random.randrange (0, 100) 

print "desired count=" + str(desired_count) 

while count < desired_count: 
    print "Down!" 
    print "Up!" 
    count = count + 1 
    print str(count) + " done" 

Обратите внимание, что это не может печатать ничего, если случайное число, выбранное равно нулю. Если вы всегда хотите, чтобы он прошел цикл по крайней мере, как только вы захотите изменить диапазон до (1, 100).

+0

Спасибо, Боб Джарвис, ваш код работал, как только я добавил отсутствующий двоеточие в строке 9! Спасибо. –

+0

Упс! Исправлено ... –

+0

Спасибо, Боб, изучение этого материала оказалось сложным, если не сказать больше. Я сделал гораздо худшие ошибки! –

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