random模块
基础
import random print(random.random()) # (1,3)--float 大于0 小于1 的小数 print(random.randint(1,3)) # [1,3] 开区间 大于等于1 小于等于3 的整数 print(random.randrange(1,3)) # [1,3) 大于等于1 小于3 的整数 print(random.choice([1,'a',[4,5]])) # 1 或者 ‘a’ 或者 [4,5] print(random.sample([111,'aaa','ccc','ddd'],2)) # 列表元素 任意2个组合 print(random.uniform(1,3)) # 大于1 小于3 的小树 item = [1,3,5,7,9] random.shuffle(item) # 打乱item的顺序,相当于 “洗牌” print(item)
应用:随机验证码
思路:
# import random # res = '' # for i in range(6): # 随机字符 = random.choice([从26个小写字母中随机抽取出一个,从10个数字中随机取出一个]) # 从26个字母中随机抽取出一个 = chr(random.randint(65,90)) # 从10个数字中随机取出一个 = str(random.randint(0,9)) # 随机字符 = random.choice([从26个字母中随机抽取出一个,从10个数字中随机取出一个]) # res += 随机字符
实现代码:
普通版:4位(大写字母+数字)
def make_code(size=4): # 默认长度为4 import random res = '' for i in range(size): s1 = chr(random.randint(65,90)) # ASCII码表中,65-90是A-Z s2 = str(random.randint(0,9)) # 随机整数0-9 res += random.choice([s1,s2]) return res print(make_code())
升级版:6位(+小写字母+大写字母+数字)
def make_code_plus(size=6): # 默认长度为6 import random res = '' for i in range(size): s1 = chr(random.randint(65,90)) # ASCII码表中,65-90是A-Z s2 = chr(random.randint(97,122)) # ASCII码表中,97-122是a-z s3 = str(random.randint(0,9)) # 随机整数0-9 res += random.choice([s1,s2,s3]) return res print(make_code_plus())