博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python生成随机密码
阅读量:5237 次
发布时间:2019-06-14

本文共 1590 字,大约阅读时间需要 5 分钟。

一、生成随机密码要实现的功能:

1、输入次数,输入多少次就产生多少条数据

2、要求密码必须包含大写字母、小写字母和数字,长度8位,不能重复

 

二、实现代码

import random,stringsrc = string.ascii_letters + string.digitscount = input('请确认要生成几条密码: ')list_passwds = []for i in range(int(count)):    list_passwd_all = random.sample(src, 5) #从字母和数字中随机取5位    list_passwd_all.extend(random.sample(string.digits, 1))  #让密码中一定包含数字    list_passwd_all.extend(random.sample(string.ascii_lowercase, 1)) #让密码中一定包含小写字母    list_passwd_all.extend(random.sample(string.ascii_uppercase, 1)) #让密码中一定包含大写字母    random.shuffle(list_passwd_all) #打乱列表顺序    str_passwd = ''.join(list_passwd_all) #将列表转化为字符串    if str_passwd not in list_passwds: #判断是否生成重复密码        list_passwds.append(str_passwd)print(list_passwds)

 

三、利用集合的交运算实现

import random,stringpasswds = []  #保存符合要求的密码count = input('请确认要生成几条密码: ')i = 0  #记录符合要求的密码个数while i < int(count):    passwd = set(random.sample(string.ascii_letters + string.digits,8)) #从字母和数字中随机抽取8位生成密码    if passwd.intersection(string.ascii_uppercase) and passwd.intersection(string.ascii_lowercase) and passwd.intersection(string.digits): #判断密码中是否包含大小写字母和数字        passwds.append(''.join(passwd))  #将集合转化为字符串        i += 1 #每生成1个符合要求的密码,i加1print(passwds)

 

四、利用正则表达式实现

import re, random, stringcount1 = int(input('请输入密码个数(必须大于0): '))i = 0passwds = []while i < count1:    tmp = random.sample(string.ascii_letters + string.digits, 8)    passwd = ''.join(tmp)    if re.search('[0-9]', passwd) and re.search('[A-Z]', passwd) and re.search('[a-z]', passwd):        passwds.append(passwd)        i += 1print(passwds)

 

   

转载于:https://www.cnblogs.com/jessicaxu/p/7656763.html

你可能感兴趣的文章
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>