2010-12-22 2 views
8

Python 2.7.1에서 임의 모듈을 가져옵니다. 이 오류는 random.py 모듈 자체에서 오류로 인해 발생무작위 모듈이 작동하지 않습니다. ValueError : randrange() (1,1,0)의 빈 범위

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

: 나는 randint를 호출 할 때 는()하지만, 난 오류가 발생합니다. 어떻게 해결해야할지 모르겠다. 파이썬 도움말을 다시 설치하지는 않는다. 버전을 변경할 수 없습니다.

누군가가 저에게 작동 모듈에 대한 코드를 제공하거나 어떻게해야 할 지 말해 줄 수 있습니까?

+0

이 오류를 생성하는 완전하고 정확한 코드를 게시 할 수 있습니까? –

+1

Pro 팁 : 'random'모듈이 스택 트레이스의 맨 아래에 있기 때문에 오류가 발생하지 않아도됩니다 (실제로는 거의 없습니다). 이미 말했듯이, 코드 (stacktrace 포함)를 게시하십시오. – delnan

+2

설명서를 읽기 전에 모듈이 작동하지 않는다고 주장하지 마십시오. –

답변

12

에있다 0에서 끝납니다. 1에서 0까지의 숫자 범위는 반드시 빈 범위를 인식해야합니다. 따라서 오류 :

empty range for randrange() 
+0

I 그것이 당신이 어떻게 부르는 지 알 것입니다. 나는 그것을 호출하고 그것은 임의의 모듈이 손상 되었기 때문에 오류가 throw됩니다. – user551717

+0

@ user551717 그러면 모델의 버전과 내가 게시 한 소스를 비교해야합니다. –

+9

@ user551717 : 이해할 때까지 내 대답을 다시 읽으십시오. 힌트 : 그것은 그것을 호출하는 방법이 아닙니다. 당신이 전화 한 방법입니다. 그리고 그것은 틀 렸습니다. –

4

나를 믿으세요, random 잘 작동합니다. 당신은 b < arandint를 호출 :

>>> 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
+0

오른쪽이지만 (1,1,0)은 (a, b + 1, b-a + 1)이므로이 경우 a = 1이고 b = 0이다. –

+0

좋습니다, 감사합니다. 내가 전화하기 전에 길이가 목록에있는 사람을 추가하는 것을 잊어 버렸습니다. – user551717

0

randint()을 단독 호출 한 경우 오류가 발생합니다. 선택할 수있는 범위의 randint()을 제공해야합니다. randint(a, b), 여기서 a와 b는 정수입니다. 작동하지 않으면 파이썬 설치가 중단됩니다.

b가 a보다 작 으면 예외가 발생합니다. 범위를 제공하는 것처럼 생각하십시오. 먼저 범위를 지정하는 것이 맞을 것입니다. 맞습니까? 따라서 먼저 작은 경계를 놓으십시오. randint를 알려줍니다

randint(1,0) 

가 1로 시작하는 값을 반환하기 :

당신이 정말로 올바른으로 random 모듈을 비교할 경우, 소스는 당신이 같은 randint라는 http://svn.python.org/view/python/branches/release27-maint/Lib/random.py?view=markup

관련 문제