首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写程序,生成随机密码。具体要求如下: (1)使用random库,采用0x1010作为随机数种子。 (2)密码由26个字母大小写、10个数字字符和!@#$%∧&*等8个特殊符号组成。 (3)每个密码长度固定为10个字符。 (4)程序运行每次产生10个密码
请编写程序,生成随机密码。具体要求如下: (1)使用random库,采用0x1010作为随机数种子。 (2)密码由26个字母大小写、10个数字字符和!@#$%∧&*等8个特殊符号组成。 (3)每个密码长度固定为10个字符。 (4)程序运行每次产生10个密码
admin
2019-08-30
77
问题
请编写程序,生成随机密码。具体要求如下:
(1)使用random库,采用0x1010作为随机数种子。
(2)密码由26个字母大小写、10个数字字符和!@#$%
∧
&*等8个特殊符号组成。
(3)每个密码长度固定为10个字符。
(4)程序运行每次产生10个密码,每个密码一行。
(5)每次产生的10个密码首字符不能一样。
(6)程序运行后产生的密码保存在“随机密码.txt”文件中。
选项
答案
import random random.seed(0x1010) s=’’abcdefghijklmnopqrstuvwxyzABCDEFGHUKLMNOPQRSTUVWXYZ\ 1234567890!@#$%
∧
&*’’ ls=[] excludes=’’’’ while len(ls)<10: pwd=’’’’ for i in range(10): pwd+=S[random.randint(0,len(s)一1)] if pwd[0]in excludes: continue else: ls.append(pwd) excludes+=pwd[0] fo=open(’’随机密码.txt’’,’’w’’) fo.write(’’\n”.join(ls)) fo.close()
解析
这是一个综合应用题,考核随机数及文本操作能力。
本题目涉及产生10个随机密码,但要求随机密码首位不能相同,可以考虑随机生成密码并判断是否首位已经存在,如果存在则再次生成密码。因此,这种模式无法确定循环产生密码的总次数,程序框架应采用while语句实现。
题目规定了密码采用的字符信息,共44个,含字母、数字和特殊符号,可以将这些字符组织成字符串,便于后续根据其中字符生成密码。
程序主体逻辑包括:生成一个10字符长度密码,判断首位是否在已生成密码首位组成的排除字符串excludes中,如果存在,则再次生成密码,否则将生成密码的首位加入排除字符串excludes中。所生成密码存储在列表变量ls中,每个密码为列表中一个元素。最后,将密码输出到文件。
综上,参考代码及注释如下:
import random
random.seed(0x1010) #设置随机数种子
s=’’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\
1234567890!@#$%
∧
&*’’
ls=[] #保存生成的随机密码
excludes=’’’’
while len(18)<10: #程序主要的while循环
pwd=’’’’
for i in range(10):
pwd+=s[random.randint(0,len(s)一1)]
if pwd[0]in excludes:
continue #首位存在,则继续循环再生成新的密码
else:
ls.append(pwd)
excludes+=pwd[0] #生成的密码首位加入排除字符串excludes
fo=open(’’随机密码.txt’’,’’w’’)
fo.write(’’\n’’.join(ls))
fo.close()
转载请注明原文地址:https://jikaoti.com/ti/5I50FFFM
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
设数据库表中有一个C型字段NAME,打开表文件后,要把内存变量CC的字符串内容输入到当前记录的NAME字段,应当使用命令:
在VisualFoxPro中,下列描述正确的是
有关查询设计器,正确的描述是
要设置日期时间型数据中的年份用4位数字显示,应使用下列哪条命令()。
设计名为formbook的表单(控件名为forml,文件名为formbook)。表单的标题设为“图书情况统计”。表单中有一个组合框(名称为Combo1)、一个文本框(名称为Textl)和两个命令按钮“统计”(名称为Commandl)和“退出”(名称为C
在考生文件夹下完成下列操作:(1)用命令新建一个名为“外汇”的数据库,并将该命令存储于one.txt中。(2)将自由表“外汇汇率”、“外汇账户”、“外汇代码”加入到新建的“外汇”数据库中。(3)用SQL语句在“外汇”数据库中新建一个数据库表rate,
(1)根据表“股票”和“数量”建立一个查询,该查询包含字段:“股票代码”、“股票简称”、“买入价”、“现价”、“持有数量”,要求按股票代码升序排序,并将查询保存为queryl。注意:股票代码取表“股票”中的“股票代码”。(2)modierr.prg中的S
建立一个文件名和表单名均为myform的表单文件,表单上有:表格控件gridl(RecordSourceType属性手工设置为“别名”),文本框控件Textl,命令按钮控件Commandl(文本为“确定”)。程序运行时在文本框中输入“部门名”,然后单击“确
数据流图中带有箭头的线段表示的是()。
在VisualFoxPro的SQL查询中,为计算某字段值的平均值应使用函数()。
随机试题
平均动脉压(MAP)为:
下列辅食适于7个月小儿添加的是
杀死病毒与芽孢的最佳消毒剂为
民用建筑基地内关于何时应设置人行道的表述中,下列哪项正确?[2010-64]
保安服务公司性质是()。
关于加快转变经济发展方式的基本要求,下列说法不正确的是()。
【《雅尔塔协定》】南京大学2001年世界近现代史真题
Whenaliquidboils,itbecomesagas.
Theregistrationnumberofthecartherobbersdroveis______.
Thehousecaughtfireon____________,in1982.
最新回复
(
0
)