2021-01-02 python 生成包含数字,大小写和特殊字

2021-01-02  本文已影响0人  昨天今天下雨天1

需求如下:

生成包含数字,大小写和特殊字符的字符串,总长度为8,数字,大小写,特殊字符至少都要有一位

代码如下

import random,string    #调用random、string模块
 
def GenPass():
    src_digits = string.digits              #string_数字  '0123456789'
    src_uppercase = string.ascii_uppercase  #string_大写字母 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    src_lowercase = string.ascii_lowercase  #string_小写字母 'abcdefghijklmnopqrstuvwxyz'
    src_special = string.punctuation        #string_特殊字符 '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
 
    #sample从序列中选择n个随机独立的元素,返回列表
    num = random.sample(src_digits,1) #随机取1位数字
    lower = random.sample(src_uppercase,1) #随机取1位小写字母
    upper = random.sample(src_lowercase,1) #随机取1位大写字母
    special = random.sample(src_special,1)  #随机取1位大写字母特殊字符
    other = random.sample(string.ascii_letters+string.digits+string.punctuation,4) #随机取4位
    # 生成字符串
    # print(num, lower, upper, special, other)
    pwd_list = num + lower + upper + special + other
    # shuffle将一个序列中的元素随机打乱,打乱字符串
    random.shuffle(pwd_list)
    # 列表转字符串
    password_str = ''.join(pwd_list)
    print(password_str)
 
 
GenPass()
 
 

生成字符串如下:

dFUJ3?]'

R\1'uC0+

RP*^8n30

随机生成中文

python3

import random
print(chr(random.randint(0x4e00,0x9fa5)))

python2

# -*- coding:utf-8 -*-
import random
for i in range(100):
    print(unichr(random.randint(0x4e00,0x9fa5)))
上一篇下一篇

猜你喜欢

热点阅读