Случайный модуль не работает.ValueError: пустой диапазон для randrange () (1,1, 0) - PullRequest
10 голосов
/ 23 декабря 2010

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

ValueError: empty range for randrange() (1,1, 0) 

Эта ошибка вызвана ошибкой в ​​самом модуле random.py.Я не знаю, как это исправить, не помогает переустановка Python.Я не могу изменить версию.

Может кто-нибудь дать мне код для рабочего модуля или сказать, что делать?

Ответы [ 4 ]

17 голосов
/ 23 декабря 2010

Вы назвали randint следующим образом:

 randint(1,0)

Это говорит randint о возвращении значения, начинающегося с 1 и заканчивающегося на 0. Диапазон чисел от 1 до нуля - это как вы наверняка понимаете, пустой диапазон.Отсюда и ошибка:

 empty range for randrange()
4 голосов
/ 23 декабря 2010

Поверь мне, random работает просто отлично. Вы звоните randint с b <<code>a:

>>> random.randint(1, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\random.py", line 228, in randint
    return self.randrange(a, b+1)
  File "C:\Python27\lib\random.py", line 204, in randrange
    raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop
, width)
ValueError: empty range for randrange() (1,1, 0)

randint возвращает значение между первым аргументом и вторым аргументом.

0 голосов
/ 12 мая 2018

random.randint(1, 0) возвращает ошибку, потому что всякий раз, когда вы используете random.randint(a, b), a должно быть меньше, чем b.Попробуйте изменить random.randint(1, 0) на random.randint(0, 1), чтобы получить правильный результат.

Нажмите здесь для получения дополнительной информации о random.randint

0 голосов
/ 23 декабря 2010

Если вы сами позвоните randint(), это определенно приведет к ошибке. Вам нужно предоставить randint() диапазон на выбор. randint(a, b), где a и b являются целыми числами, должно работать, а если нет, ваша установка Python не работает.

Это также вызовет исключение, если b меньше, чем a. Думайте об этом, как будто вы предоставляете диапазон: имеет смысл ставить нижнюю границу первой, верно? Поэтому сначала поместите меньшую границу.

Если вы действительно хотите сравнить свой random модуль с правильным, источник находится на http://svn.python.org/view/python/branches/release27-maint/Lib/random.py?view=markup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...