FK二十一 发表于 2021-9-6 11:46:37

零基础之第15讲作业之经典不知错在哪??(最新)

print('~~~~~~~~~~密码安全性检查代码~~~~~~~~~~')
A=input('请输入需要检查的密码组合:')
zimu='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
shuzi='0123456789'
listA=[]
for i in A:#将字符串转化成列表,方便操作。
    listA.append(i)
fu='~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
listB=listA[:]#创造替身
a=0
b=0
c=0
d=0
for i in listA:#判断是否有特殊字符
    if i in fu:
      a+=1
      break
for o in listA:#判断是否有数字
    if o in shuzi:
      b+=1
      break
for p in listA:#判断是否有字母
    if p in zimu:
      c+=1
      break
d=a+b+c
for ii in listB:#去除特殊字符
    if ii in fu:
      listB.remove(ii)
for oo in listB:#去除字母
    if oo in zimu:
      listB.remove(oo)
for pp in listB :#去除数字
    if pp in shuzi:
      listB.remove(pp)
if len(listB)==0 :
    if (int(d)==3) and (A.istitle()) and (len(listA)>=16):
      print('您的密码安全级别评定为:高\n请继续保持')
    if int(d)==2 andlen(listA)>=8:
      print('您的密码安全级别评定为:中\n请按以下方式提升您的密码安全级别:\n\t1. 密码必须由数字、字母及特殊字符三种组合\n\t2. 密码只能由字母开头\n\t3. 密码长度不能低于16位')
    if int(d)==1 and int(c)==0 and len(listA)<=8:
      print('您的密码安全级别评定为:低\n请按以下方式提升您的密码安全级别:\n\t1. 密码必须由数字、字母及特殊字符三种组合\n\t2. 密码只能由字母开头\n\t3. 密码长度不能低于16位')
else:
    print('您输入了其它字符,请按照以下要求输入:\n\t1. 密码必须由数字、字母及特殊字符三种组合\n\t2. 密码只能由字母开头\n\t3. 密码长度不能低于16位')

run:
请输入需要检查的密码组合:asxansx8738475{}[]
您输入了其它字符,请按照以下要求输入:
        1. 密码必须由数字、字母及特殊字符三种组合
        2. 密码只能由字母开头
        3. 密码长度不能低于16位


白two 发表于 2021-9-6 13:31:10

本帖最后由 白two 于 2021-9-6 13:33 编辑

用 for 循环遍历的时候最好不要删除元素
例如:
>>> a =
>>> for i in a:
        if i % 2 == 0:
                a.remove(i)

               
>>> print(a)


因为你遍历的时候把这个元素删除了,那么下一个元素就会顶上来,你遍历的下一个元素将会是原本下一个的后面那个。
你去除元素时,如果有两个都满足去除条件的挨在一起,那么后面那个就会因为这个原因不会被剔除,所以最后字符串长度不会为0

FK二十一 发表于 2021-9-6 18:34:51

白two 发表于 2021-9-6 13:31
用 for 循环遍历的时候最好不要删除元素
例如:



谢谢,爱你
页: [1]
查看完整版本: 零基础之第15讲作业之经典不知错在哪??(最新)