1安徽大学计算机实验教学中心学号E11614051专业计算机科学与技术姓名施飞宇实验日期教师签字成绩实验报告【实验名称】试验一【实验内容】1.(基本要求)设计一个密码生成函数,当用户输入密码长度之后,能够生成指定长度的密码,且密码满足如下要求:(扩展要求)生成密码之后,对密码的安全指标进行评分,自定义评分规则和分值区间。代码说明:在对代码进行安全性评分时,评分最高100分。评分规则如下:(1)每种字符占比25%。(2)如果不同字符数目相同,则在(1)的基础上减去重复次数乘5。试验代码:#(基本要求)设计一个密码生成函数,当用户输入密码长度之后,能够生成指定长度的密码,且密码满足如下要求:#(扩展要求)生成密码之后,对密码的安全指标进行评分,自定义评分规则和2安徽大学计算机实验教学中心分值区间。importstringimportrandompassword_length=int(input(请输入密码长度:))password1=[]s=string.printablepassword1=[random.choice(s)foriinrange(password_length)]password2=.join(password1)print(生成的密码是:,password2)digits=0punctuation=0ascii_lowercase=0ascii_uppercase=0foriinpassword1:if(iinstring.digits):digits=digits+1if(iinstring.punctuation):punctuation=punctuation+1if(iinstring.ascii_lowercase):ascii_lowercase=ascii_lowercase+1if(iinstring.ascii_uppercase):ascii_uppercase=ascii_uppercase+1print(didits数目:,digits)print(punctuation数目:,punctuation)print(ascii_lowercase数目:,ascii_lowercase)print(ascii_uppercase数目:,ascii_uppercase)list=[digits,punctuation,ascii_lowercase,ascii_uppercase]num=0foriinlist:if(i!=0):num=num+25if(list.count(i)1):print(list.count(i))num=num-5print(安全性分数:,num)运行截图:2.(基本要求)从键盘接收若干个整数,存放在列表中。自己实现某种排序算法,3安徽大学计算机实验教学中心将输入数据进行升序排列,并将排序结果在屏幕上输出,并对比该算法与列表自带sort方法的性能。程序代码:#(基本要求)从键盘接收若干个整数,存放在列表中。#自己实现某种排序算法,将输入数据进行升序排列,并将排序结果在屏幕上输出,并对比该算法与列表自带sort方法的性能。importtimeimportrandomdefsort1(a):b=[]foriinrange(len(a)):x=min(a)b.append(x)a.remove(x)returnba=[random.randint(0,10000)foriinrange(10000)]start=time.time()b=a.sort()print(sort函数排序时间:,time.time()-start,s)start=time.time()b=sort1(a)print(sort1函数排序时间:,time.time()-start,s)运行截图:【小结或讨论】就是python底层封装的函数,更高效的运行。循环体内对列表进行删除操作,有时候会产生意想不到的错误,可以用切片方式解决。4安徽大学计算机实验教学中心