我只想知道如何生成某个数字整数,但也不包括出现在该数字中的某个数字。
例如,如果我要在3位数字上排除数字0,则无论生成多少次,都不会出现任何0。结果的例子是591,292,182,111,181,738等。
如果这是一个功能,例如
def randomIntWithNDigits(n):
,这将非常有帮助。
答案 0 :(得分:4)
这是一个解决方案,使用字符串中随机选择的字符,其中包含除了您不想要的数字之外的每个数字。
import random
def randomIntWithNDigits(n):
numbers = '12456789'
result = ''
for i in range(0,n):
result+= random.choice(numbers)
return result
答案 1 :(得分: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。
答案 2 :(得分:-1)
import random
def generaterandom(n):
while True:
rand = random.randrange(0,n)
if not '3' in rand.__str__():
return rand;
print generaterandom(10)