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(): 將多個路徑組合后返回