|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- symbol = r""" ~!@#$%^&*()_=-/,.?<>;:[]{}|\ """
- numbers='0123456789'
- sum_ =0
- warn = """
- 请按以下方式提升您的密码安全级别:
- 1. 密码必须由数字、字母、及特殊字符三种组合
- 2. 密码只能由字母开头
- 3. 密码长度不能低于16位"""
- while True:
- passwds = input('请输入需要检查密码组合:')
- if len(passwds) <= 8:
- print("您的密码安全级别评定为:低")
- print(warn)
-
- elif 16 >len(passwds) > 8:
-
- print("您的密码安全级别评定为:中")
- print(warn)
-
- elif len(passwds) > 16:
- #首字母判断
- if passwds[0].isalpha()==True:
- for i in range(1):
-
- for n in passwds:
- if numbers.find(n) !=-1:
- sum_ +=1
- for i in range(1):
- for each in passwds:
- if symbol.find(each)!=-1:
- sum_ +=1
- if sum_==2:
-
- print("您的密码安全级别评定为:高")
- print("请继续保持")
- else:
- print("您的密码安全级别评定为:中")
- print(warn)
-
-
-
-
-
复制代码
求教 1. 这个程序在 if passwds[0].isalpha()==True: 的时候没有发挥作用,只在满足16位以上和特殊字符串后就判断了,我按数字开头也被安全等级也被评为高,怎么回事呢?明明应该先判断是否是字母开头后才对后面的步骤进行判断的
2. sum_ 想如果出现过数字和特殊符号就加一次 sum_==2的时候说明满足了3种组合都满足,但打印出sum_的总数是把密码里所有出现的数字和特殊符号都计算了一次
怎么改才能按我的这个思路,把程序运行下去,谢谢
帮你修改了。
- symbol = r""" ~!@#$%^&*()_=-/,.?<>;:[]{}|\ """
- numbers='0123456789'
- warn = """
- 请按以下方式提升您的密码安全级别:
- 1. 密码必须由数字、字母、及特殊字符三种组合
- 2. 密码只能由字母开头
- 3. 密码长度不能低于16位"""
- while True:
- sum_ =0
- print(warn)
- passwds = input('请输入需要检查密码组合:')
- #首字母判断
- if passwds[0].isalpha()==True:
- if len(passwds) <= 8:
- print("您的密码安全级别评定为:低")
-
-
- elif len(passwds) < 16:
-
- print("您的密码安全级别评定为:中")
-
- else:
- for n in passwds:
- if numbers.find(n) !=-1:
- sum_ +=1
- break
- for each in passwds:
- if symbol.find(each)!=-1:
- sum_ +=1
- break
- if sum_==2:
-
- print("您的密码安全级别评定为:高")
- print("请继续保持")
- else:
- print("您的密码安全级别评定为:中")
- else:
- print('密码只能由字母开头')
复制代码
|
|