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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM