2014-02-27 2 views
1

특정 숫자 정수를 생성하는 방법뿐 아니라 해당 숫자에 나타나는 특정 숫자를 제외하는 방법에 대해 궁금합니다.파이썬에서 특정 숫자 정수에서 특정 숫자를 생성하지만 제외하는 방법

예를 들어 3 자리 숫자에서 숫자 0을 제외하면 생성 횟수에 상관없이 0이 나타나지 않습니다. 이 함수에 있어야한다면 결과로서는 예컨대

def randomIntWithNDigits(n): 

, 이는 매우 유용 할 것이고, 591, 292, 182, 111, 181, 738 등

것이다.

+0

쓰시겠습니까? – WeaselFox

+0

직접 할 수는 없지만 가장 좋은 방법은 랜덤을 생성하는 것입니다. 일치하는 임의의 [임의의 3이없는 숫자]가 나타납니다. – ManZzup

답변

4

다음은 원하지 않는 숫자를 제외한 모든 숫자가 포함 된 문자열의 임의의 문자 선택을 사용하는 솔루션입니다. 아주 쉽게

import random 

def randomIntWithNDigits(n): 
    numbers = '12456789' 
    result = '' 
    for i in range(0,n): 
     result+= random.choice(numbers) 
    return result 
+2

' ''.jin (범위 (n)의 i에 대해 random.choice (numbers) –

-1
import random 

def generaterandom(n): 
    while True: 
     rand = random.randrange(0,n) 
     if not '3' in rand.__str__(): 
      return rand; 

print generaterandom(10) 
0

. 예를 들어, 0이 제외 된 경우 :

def randomIntWithNDigits(n): 
    allowedDigits = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
    randInts = [] 
    for i in range(n): 
     randInts.append(random.sample(allowedDigits, 1)) 
    return int(''.join(map(str, randInts))) 

다른 숫자를 제외해야하는 경우 allowedDigits 만 변경하면됩니다.

관련 문제