2014-02-27 258 views
1

我只是想知道如何生成某個數字整數,但也不包括出現在該數字中的某個數字。如何生成但排除在Python中的某個數字整數中的某個數字

例如,如果我要排除3位數字上的數字0,則無論我生成多少次,都不會出現任何0。結果的例子是591,292,182,111,181,738,等

如果這是在一個函數,e.g

def randomIntWithNDigits(n): 

,這將是非常有益的。

+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

'''.join(random.choice(numbers)for i in range(n))' –

-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。

相關問題