簡體   English   中英

如何在python中生成但排除某個數字整數中的某個數字

[英]How to generate but exclude a certain number in a certain digit integer in python

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

例如,如果我要在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)))

當需要排除其他一些數字時,您應該只更改allowedDigits。

import random

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

print generaterandom(10)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM