【python】生成随机数字/字母/指定位数的字母+数字的字符串

时间:2024-11-06 15:09:20

在利用python代码进行开发或者测试中,难免会遇到一些需要输入随机值的相关操作,这里特意总结了一下:

一、随机数字的生成

(1)生成0-9(或其他数字段)中的一个(串)随机数字

import random
def create_random_int_number():
    """随机返回从0-9之间的整数"""
    return random.randint(0, 9)
    #也可以根据续修返回其他长度的数字,这里我返回1000-9999中的任意一个数字
    # return (1000, 9999)
    
print(create_random_int_number())

运行结果:8

(2)生成0-9999(或其他数字段)之间的任意一个浮点数

import random
def create_random_float_number():
    """随机返回从0-9999之间的浮点数"""
    return random.uniform(0, 9999)
    
print(create_random_float_number())

运行结果:9393.133900249248

(3)生成0-1之间的任意一个浮点数

import random
def create_random_0_1_number():
    """随机返回一个0-1之间的浮点数"""
    return random.random()
    
print(create_random_0_1_number())

运行结果:0.0803613273312489

(4)随机选择数组中任意一个或几个元素

import random
def create_random_samples_from_list():
    """随机从ls数组中选2个元素"""
    ls = ["aaa", 1, 'class', 'createrandomsamplesfromlist', 9990]
    print(random.choice(ls))
    return random.sample(ls, 2)

print(create_random_samples_from_list())

运行结果:[1, ‘aaa’]

二、随机大小写字母的生成

(1)随机生成一个大写或小写的英文字母

import random
def create_random_string():
    """随机生成一个大写或小写的英文字母"""
    return random.choice(string.ascii_letters)

print(create_random_string())

运行结果:G

(2)随机生成一串包含大写或小写的英文字母

import random
def create_random_strings():
    """随机生成一串包含大写或小写的英文字母"""
    return string.ascii_letters

print(create_random_strings())

运行结果:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

三、随机指定位数的字符+数组混合的字符串

def create_string_number(n):
    """生成一串指定位数的字符+数组混合的字符串"""
    m = random.randint(1, n)
    a = "".join([str(random.randint(0, 9)) for _ in range(m)])
    b = "".join([random.choice(string.ascii_letters) for _ in range(n - m)])
    return ''.join(random.sample(list(a + b), n))

print(create_string_number(9))

运行结果:148k808S4