python怎么重复输入密码直至正确_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作业/练习/实战:生成双色球小程序

作业要求: 每注投注号码由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作业ATM(第五周)

作业需求: 额度 15000或自定义. 实现购物商城,买东西加入 购物车,调用信用卡接口结账. 可以提现,手续费5%. 支持多账户登录. 支持账户间转账. 记录每月日常消费流水. 提供还款接口. AT ...

《Python高效开发实战》实战演练——建立应用2

为了在项目中开发符合MVC架构的实际应用程序,需要在项目中建立Django应用.每个Django项目可以包含多个Django应用.建立应用的语法为: #python manage.pystartapp ...

Python接口测试框架实战与自动化进阶☝☝☝

Python接口测试框架实战与自动化进阶☝☝☝  一.fiddler在工作中的运用  1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...

php生成随机密码(php自定义函数)转自先锋教程网

php生成随机密码(php自定义函数) 时间:2015-12-16 20:43:49来源:网络 导读:php随机密码的生成代码,使用php自定义函数生成指定长度的随机密码,密码规则为小写字母与数字的随 ...

随机推荐

Objective-C中把数组中字典中的数据转换成URL

可能上面的标题有些拗口,学过PHP的小伙伴们都知道,PHP中的数组的下标是允许我们自定义的,PHP中的数组确切的说就是键值对.而在OC我们要用字典(Dictionary)来存储,当然了Java用的是M ...

入门React和Webpack

最近在学习React.js,之前都是直接用最原生的方式去写React代码,发现组织起来特别麻烦,之前听人说用Webpack组织React组件得心应手,就花了点时间学习了一下,收获颇丰 说说React ...

OO与设计模式的原则、目标

OO与设计模式的原则.目标(转) 前两天,和一朋友聊到OO设计原则时,对设计模式有了更深的了解,在这里总结一下,与大家分享.OO(Object–Oriented )面向对象   OO方法(Object ...

XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)

目前在XCode上开发的iOS程序只能在模拟器Simulator中运行,如果要放到真机上测试,需要苹果官方认证的开发者账号,购买开发者证书iDP,99美金一年啊!!! 作为刚开始学习iOS编程的菜鸟, ...

Cobbler批量安装Ubuntu/CentOS系统

2013-07-25    一.安装和修改cobbler配置 1. Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包, 确保epel-release包的版本为最新,当前最新版本为 ...

Node.js 究竟是什么

简而言之,Node.js是一个“编码就绪”服务器.Node是一个服务器端的JavaScript解释器,它将改变服务器如何工作的概念.是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同事连接到一 ...

python检查IP地址正确性

一.自动动手,丰衣足食 #encoding=utf-8 import os,sys def check_ip(ipaddr): addr = ipaddr.strip().split('.') #切割 ...

6-12mysql库的操作

1,mysql库的各种分类: nformation_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等. performance_sch ...

24. Swap Nodes in Pairs 链表每2个点翻转一次

[抄题]: Given a linked list, swap every two adjacent nodes and return its head. Example: Given 1->2 ...

Linux判断文件是否为空,不为空则打印该文件的大小

Linux判断文件是否为空,不为空则打印该文件的大小,使用到的命令是-s + filename -s filename 如果文件大小大于0,则返回true. 例如: 查看当前目录 # ls -l to ...

你可能感兴趣的:(python怎么重复输入密码直至正确_python作业/练习/实战:生成随机密码)