python 生成随机数
import random import string import time from datetime import date,timedelta class randoms(): # 获取26个大小写字母 letters = string.ascii_letters # 获取26个小写字母 Lowercase_letters = string.ascii_lowercase # 获取26个大写字母 Capital = string.ascii_uppercase # 获取阿拉伯数字 digits = string.digits
1,随机生成指定位数的数字字母组合
def code(self): # s是小写字母和数字的集合 s = randoms.Lowercase_letters+randoms.digits #生成28位小写和数字的集合,并将列表转字符串 code=''.join(random.sample(s,28)) print('随机code:%s'%code) return code
或者
from datetime import date,timedelta def r_string(self):#生成随机字符串 data="1234567890zxcvbnmlkjhgfdsaqwertyuiop" #用时间来做随机播种 random.seed(time.time()) #随机选取数据 sa=[] for i in range(20): sa.append(random.choice(data)) salt="gp_"+''.join(sa) print(salt) # return salt
2,随机生成不包含某些字母或数字的字符
def tax_code(self): list_1=['I','O','Z','S','V'] list_2=[] for j in randoms().Capital: if j not in list_1: list_2.append(j) s =''.join(list_2) + randoms().digits tax_code=''.join(random.sample(s,18)) print('随机税号:%s'%tax_code) return tax_code
3,生成随机手机号,详见https://blog.csdn.net/z5622139/article/details/79197089
def telephone(self): # 第二位数字 second = [3, 4, 5, 7, 8][random.randint(0, 4)] # 第三位数字 third = { 3: random.randint(0, 9), 4: [5, 7, 9][random.randint(0, 2)], 5: [i for i in range(10) if i != 4][random.randint(0, 8)], 7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)], 8: random.randint(0, 9), }[second] # 最后八位数字 suffix = random.randint(10000000, 99999999) # 拼接手机号 telephone="1{}{}{}".format(second, third, suffix) print('手机号:%s'%telephone) return telephone
生成随机手机号方法2,详见https://www.cnblogs.com/jiuyigirl/p/7144725.html
def create_telephone(self): telephone=random.choice(['139', '188', '185', '136', '158', '151']) + "".join( random.choice("0123456789") for i in range(8)) print(telephone) return telephone
函数使用补充说明
1,random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串,使用如下,详见https://www.cnblogs.com/jiuyigirl/p/7144725.html
random.random() 用于生成一个随机浮点数:range[0.0,1.0)
random.uniform(a,b) 用于生成一个指定范围内的随机浮点数,a,b为上下限,只要a!=b,就会生成介于两者之间的一个浮点数,若a=b,则生成的浮点数就是a
random.randint(a,b) 用于生成一个指定范围内的整数,a为下限,b为上限,生成的随机整数a<=n<=b;若a=b,则n=a;若a>b,报错
random.randrange([start], stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random.choice(sequence) 从序列中获取一个随机元素,参数sequence表示一个有序类型,并不是一种特定类型,泛指list,tuple,字符串等
random.shuffle(x[,random]) 用于将一个列表中的元素打乱
random.sample(sequence,k) 从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列
2,Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回