python作业/练习/实战:生成随机密码
作业要求
1、写一个函数,函数的功能是生成一批密码,存到文件里面
def gen_password(num):
#num代表生成多少条密码
2、密码复杂度要求
1)长度在,8-16位之间
2)密码必须包括大写字母、小写字母、数字、特殊字符
3)密码不能重复
3、生成的密码保存到文件里面
方法1提示
1、先分别从大写字母、小写字母、数字、特殊字符中各取一个 4个
2、再从所有的字符里面取4-12个,和第一部获取到的结果拼起来 8-16
import string,random
def gen_password():
for i in range(num):
pwd_len=random.randint(8,16) #总长度
upper =random.sample(string.ascii_uppercase,1) # choice只返回一个字符,sample返回一个字符串,所以这里我们使用sample
lower = random.sample(string.ascii_lowercase,1) # 在所有小写字母中随机选择一个
digits = random.sample(string.digits,1)
punctuation = random.sample(string.punctuation,1)
other=random.sample(string.ascii_letters+string.digits+string.punctuation,pwd_len-4) #剩余长度为总长度-4,在所有的字母符号数字中取 res=upper+lower+digits+punctuation+other #把上面的拼接在一起
random.shuffle(res) # 打乱顺序
# print(''.join(res))
return ''.join(res)
#将密码保存到文件中
all_passwords=set()
num=int(input('请输入要产生多少条密码 :').strip())
while len(all_passwords)!=num: #使用集合长度作为循环次数
res=gen_password()+'\n'
all_passwords.add(res)
with open('pwd.txt','w',encoding='utf-8') as fw:
fw.writelines(all_passwords)
方法2提示
所有的里面取8-16位,然后看是否和数字大小写字母特殊符号有交集
import string,random def gen_password2():
pwd_len = random.randint(8, 16) # 总长度
all_str = string.ascii_letters + string.digits + string.punctuation # 全部
res=set(random.sample(all_str,pwd_len)) #在全部里取长度,先换成集合,后面好取交集
if res & set(string.ascii_lowercase) and res & set(string.ascii_lowercase) and res & set(string.digits) and res & set(string.punctuation): # 取交集
return ''.join(res) # 交集里都有,说明对啦,可以返回res了
return gen_password2()
#将密码保存到文件中
all_passwords=set()
num=int(input('请输入要产生多少条密码 :').strip())
while len(all_passwords)!=num: #使用集合长度作为循环次数
res=gen_password2()+'\n'
all_passwords.add(res)
with open('pwd.txt','w',encoding='utf-8') as fw:
fw.writelines(all_passwords)
python作业/练习/实战:生成随机密码的更多相关文章
- python作业/练习/实战:生成双色球小程序
作业要求: 每注投注号码由6个红色球号码和1个蓝色球号码组成.红色球号码从1--33中选择:蓝色球号码从1--16中选择 代码范例 import random all_red_ball = [str( ...
- python作业/练习/实战:3、实现商品管理的一个程序
作业要求 实现一个商品管理的一个程序,运行程序有三个选项,输入1添加商品:输入2删除商品:输入3 查看商品信息1.添加商品: 商品名称:xx 商品如果已经存在,提示商品已存在 商品价格:xx数量只能为 ...
- python作业/练习/实战:2、注册、登录(文件读写操作)
作业要求 1.实现注册功能输入:username.passowrd,cpassowrd最多可以输错3次3个都不能为空用户名长度最少6位, 最长20位,用户名不能重复密码长度最少8位,最长15位两次输入 ...
- python作业/练习/实战:1、简单登录脚本
作业要求 写一个登陆的小程序 username = xiaoming passwd = 123456 1.输入账号密码,输入正确就登陆成功, 提示:欢迎xxxx登陆,今天的日期是xxx. 2.输入错误 ...
- python作业/练习/实战:下载QQ群所有人的头像
步骤与提示:1.在腾讯群网页中进入任意一个群,获取相关信息,可以用postman是试一下,可以看到我们要的是mems里面的数据,需要获取到QQ号和群名片,如果没有群名片的话取昵称2.根据QQ号下载头像 ...
- Python实现自动更改系统用户密码,生成随机密码
算是一个实用的例子,定制系统任务,并将随机密码上传至日志服务器,实现定期修改密码: 部分代码: 1 #!/usr/bin/env python 2 #coding:utf-8 3 import ran ...
- python作业ATM(第五周)
作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...
- 《Python高效开发实战》实战演练——建立应用2
为了在项目中开发符合MVC架构的实际应用程序,需要在项目中建立Django应用.每个Django项目可以包含多个Django应用.建立应用的语法为: #python manage.pystartapp ...
- Python接口测试框架实战与自动化进阶☝☝☝
Python接口测试框架实战与自动化进阶☝☝☝ 一.fiddler在工作中的运用 1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...
随机推荐
- CSS属性去除图片链接时的虚线框
CSS 之outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用.outline 属性是一个简写属性,用于设置元素周围的轮廓线.注释:轮廓线不会占据空间,也不一定是 ...
- IPython notebook在浏览器中显示不正常的问题及解决方法
使用过Python的童鞋们应该知道IPython是一个比python自带的交互式界面更加友好的交互界面,IPython提供了自动补齐什么的,其实我还没开始用所以这里也不扯淡了,大家自己去网上查,IPy ...
- python排序参数key以及lambda函数
首先,lambda格式 lambda x:x+1, 前面的x相当于传入的形参,后面的相当于返回值, 使用起来很简单,只要明白“:”前后的含义即可正确使用. 再来说一下排序等函数中的key,这里以lis ...
- jQuery学习笔记(基础部分)
参考:菜鸟教程 一.简介 1.jQuery 是一个 JavaScript 库. 2.jQuery的版本:压缩版(用户生成)和未压缩(用于测试和开发) 3.jQuery的引入方式: 从http://jq ...
- while/until/for 循环举例2
- tcpdump 与 抓包分析
在Windows下一般使用WireShark 抓包软件,tcpdump 是 Linux 系统的抓包软件.它可以抓取 TCP/IP 协议族的数据包,支持针对网络层.协议.主机.端口的过滤,并提供 and ...
- docker学习---搭建Docker私有库及删除库内镜像
环境准备系统: cat /etc/redhat-release CentOS Linux release (Core) 主机两台,分别是docker私有库服务器(IP 192.168.121.121) ...
- 【LeetCode】Array
[11] Container With Most Water [Medium] O(n^2)的暴力解法直接TLE. 正确的解法是Two Pointers. O(n)的复杂度.保持两个指针i,j:分别指 ...
- C# IOC DI 学习
之前一直不理解IOC DI,今天使劲研究了下,感觉朦朦胧胧有点感觉了,网上的这篇文章对我的有很大的启发 http://www.cnblogs.com/jin-yuan/p/3823559.html 我 ...
- css强制换行和超出部分隐藏实现
一.强制换行 1 word-break: break-all; 只对英文起作用,以字母作为换行依据. 2 word-wrap: break-word; 只对英文起作用,以单词作为换行依据. 3 whi ...