鱼C论坛

 找回密码
 立即注册

咖啡的旅游记

https://fishc.com.cn/?521662

第14讲 课后练习题 留底 供自嘲

已有 274 次阅读2018-3-14 15:33 |个人分类:课后练习-自嘲

strD="您的密码安全评定为:低"
strM="您的密码安全评定为:中"
strG="您的密码安全评定为:高"
strB="请按以下方式提升您的密码安全级别:\
\n\t1.密码必须由数字、字母及特殊字符组合。\
\n\t2.密码只能由字母开头。\n\t3.密码长度不能低于16位。"
strnum='1234567890'
strletter='abcdefghigklmnopqrstuvwxyz'
strLetter='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
specialchars=r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
mstr=""

while True:
  pw=input("请输入需要检查的密码组合:").strip()
  print(pw)
  if pw[0].isalpha():#字母开头
    for i in pw:
##      print("我是密码中的一个:",i)
      if (i in strnum) :mstr+='a'
      elif(i in strletter):mstr+='b'
      elif(i in strLetter):mstr+='b'
      elif(i in specialchars):mstr+='c'
##    print(mstr)
#定义:a=数字量,b=字母量,c=特殊字符量
    lenstr=len(mstr)  
    num=mstr.count('a')
    letter=mstr.count('b')
    spchar=mstr.count('c')
##    print("长度:",lenstr,"   数字:",num,"   字母:",letter,"    特殊字符:",spchar)
    if (num==lenstr  or letter==lenstr or(num + letter==lenstr)) or lenstr<8:#低
      print(strD+'\n'+strB)
    elif ((num>0 and letter>0 and spchar==0)\
          or (num>0 and spchar>0 and letter==0)\
          or (letter>0 and spchar>0 and num==0)\
          or (num>0 and letter>0 and spchar>0)) and 16>lenstr>=8  :#中
      print(strM+'\n'+strB)
    elif num>0 and letter>0 and spchar>0 and lenstr>=16:
      print(strG+'\n'+strB)
  else:
    print(strB)
  mstr="" 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-8 10:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部