randrange()没有在我的random_string()函数上工作

时间:2018-03-17 23:24:46

标签: python python-3.x

我的随机字符串函数:

def random_string(chars=string.ascii_letters + string.digits):
    size = random.randrange(10, 15)
    return str(''.join(random.choice(chars) for _ in range(size)))

我希望它生成长度在10到15个字符之间的随机字符串,这就是我完成size = random.randrange(10, 15)的原因。但是,它并没有遵守这条规则。

此外,大约20%的时间,random_string()只返回一个空字符串:''。不知道为什么会这样。

任何人都知道如何解决这些问题?

1 个答案:

答案 0 :(得分:0)

使用以下程序进行的严格测试表明该功能正常工作:

import random, string

def random_string(chars=string.ascii_letters + string.digits):
    size = random.randrange(10, 15)
    return str(''.join(random.choice(chars) for _ in range(size)))

for i in range(10000):
    x = random_string()
    if not (10 <= len(x) <= 15): #Check that the length of the 
                                 #generated string is within range

        print("Failed: len={0}".format(len(x)))

print("Tests completed")