python生成指定长度的随机字符串

本章所写方法适用于python随机生成验证码,盐值,密码等,最终返回json格式 可以对其进行修改 直接返回字符串,本文章不再做修改

# 随机数标准库---random
import random
# 字符串标准库 string
import string
import json


def get_random_str(tol_len: int = 10, num_max_len: int = 5):
    """
    :param tol_len:  生成字符创的总长度 类型为int
    :param num_max_len:数字占据的最大长度 类型为int
    :return: 返回需要的字符串
    """
    if not (isinstance(tol_len, int) and isinstance(num_max_len, int)):
        return json.dumps({'code': 1, 'msg': '参数需为int'}, ensure_ascii=False)

    # 数字的长度
    num_len = random.randint(1, num_max_len)
    # 字母的长度
    ascii_len = tol_len - num_len
    # 生成随机数字
    num_list = []
    # string.digits 0-9的数字
    # random.choice():从指定的序列中获取一个随机元素
    for _ in range(num_len):
        num = random.choice(string.digits)
        num_list.append(num)
    # # 生成随机字母
    ascii_list = []
    for _ in range(ascii_len):
        ascii = random.choice(string.ascii_lowercase)
        ascii_list.append(ascii)
    # 将随机数字和随机字符合并
    all_str_list = num_list + ascii_list
    # 打乱数组
    random.shuffle(all_str_list)
    # 将随时数字及字符的列表转为字符串
    str_temp = ''
    random_str = str_temp.join(all_str_list)
    return json.dumps({'code': 0, 'data': {'str': random_str}}, ensure_ascii=False)


x = get_random_str(15, 2)
y = json.loads(x)
z = y['data']['str']
print(z)

你可能感兴趣的:(python,python,开发语言,json)