Python生成隨機字符串


import random, string

#第一種方法(推薦)
def random_str(slen=10):
    seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
    sa = []
    for i in range(slen):
      sa.append(random.choice(seed))
    return ''.join(sa)
    #random_str(8)運行結果:l7VSbNEG

#第二種方法,random.sample可以從指定的序列中,隨機的截取指定長度的片斷,不作原地修改
def random_string(slen=10):#截取長度不能超過指定序列的長度
    return ''.join(random.sample(string.ascii_letters + string.digits + '!@#$%^&*()_+=-', slen))
    #random_string(8)運行結果:VOuCtHZs

不想在文件里有太多函數,改進一下:

import random

def random_str(digits=True, lowercase=True, uppercase=True, symbol=True, slen=10):
    seed = ''
    seed = seed + '1234567890' if digits else seed+''
    seed = seed + 'abcdefghijklmnopqrstuvwxyz' if lowercase else seed + ''
    seed = seed + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' if uppercase else seed + ''
    seed = seed + '!@#$%^&*()_+=-' if symbol else seed + ''
    if len(seed)==0:
        return None
    sa = []
    for i in range(slen):
      sa.append(random.choice(seed))
    return ''.join(sa)

 


免責聲明!

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



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