py random模块
#random模块 import random # print(random.random())#获取一个随机数,这种是默认从0到1里面获取一个,因此结果一般是浮点数 # print( random.uniform(1, 10))#从指定范围内获取一个随机数字,一般是浮点数 # print(random.randint(1,9))#获取随机整数,从1到9,不包含右边界的值 # print(random.choice(["123",4,[5,6]]))#获取随机的值域(列表\元组\字符串)里面的一个值 # print(random.randrange(1,9))#随机获取1到9间 的一个数字 #print(random.randrange(1,9,2))#随机选取1到9间的偶数: #从已知范围 获取 随机字符: # print( random.choice('abcdefghi4567089uvwxyz!@#$%^&*()')) # 从给定的字符串中,生成指定长度的随机字符: # print( random.sample('zyxwvutsrqponmlkjihgfedcba',5) ) # 多个字符中选取指定长度的字符,然后组成新字符串:------->>指定26个字母,随机组合生成5个字符 # print( ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))) # 随机剪刀石头布: # print(random.choice(['剪刀', '石头', '布'])) # 从a-zA-Z0-9生成指定长度的随机字符:---->>使用string模块 # import string # ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8)) # print (ran_str)
写一个函数实现:
结合用string模块得到数字及字母,并通过列表生成式的方法得到结果
import random import string def generate_random_str(randomlength=16):
""" 生成一个指定长度的随机字符串,其中 string.digits=0123456789 #string.digits是string模块特有,随意修改会报错 string.ascii_letters=abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ """
str_list = [random.choice(string.digits + string.ascii_letters) for i in range(randomlength)] random_str = ''.join(str_list) return random_str f=generate_random_str(32) print(f)