首页 > 解决方案 > python随机选择什么都不选择

问题描述

我有一种方法可以生成始终以字符开头并且长度至少为 1 的随机字符串。

class Util:
    @staticmethod
    def get_random_name():
        N = r.randint(0, 5)
        return "".join(
            r.choice(
                string.ascii_lowercase
                + string.ascii_uppercase
            )
        ).join(
            r.choice(
                string.ascii_lowercase
                + string.ascii_uppercase
                + string.digits
            )
            for _ in range(N)
        )

现在当我这样做时:

for i in range(0,50):
    logging.debug(str(i)+" -- "+Util().get_random_name())

其中一些给了我空字符串,或者有时它以数字开头。

我错过了什么?

检查日志: 在此处输入图像描述

标签: pythonpython-3.x

解决方案


我想你正在寻找类似的东西

import random
import string


def get_random_name(min_n=0, max_n=5):
    initial = random.choice(
        string.ascii_lowercase
        + string.ascii_uppercase
    )
    return initial + "".join(
        random.choice(
            string.ascii_lowercase
            + string.ascii_uppercase
            + string.digits
        )
        for _ in range(
            random.randint(min_n, max_n)
        )
    )


for x in range(10):
    print(x, get_random_name(max_n=x))

输出(例如):

0 z
1 cm
2 W
3 oku9
4 nh
5 Ul3
6 yNPH
7 Rw7hW0eW
8 qR
9 BYKaGyv

推荐阅读