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