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