|  | 
 
| 
答案的代码在完成检查密码的安全级别工作后即结束,那么,如果我想要用户一直输入密码,直到符合安全性为“高”的要求后程序才停止,该如何修改以下代码呢?谢谢!
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 
 # 密码安全性检查代码
 #
 # 低级密码要求:
 #   1. 密码由单纯的数字或字母组成
 #   2. 密码长度小于等于8位
 #
 # 中级密码要求:
 #   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
 #   2. 密码长度不能低于8位
 #
 # 高级密码要求:
 #   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
 #   2. 密码只能由字母开头
 #   3. 密码长度不能低于16位
 
 symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
 chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
 nums = '0123456789'
 
 passwd = input('请输入需要检查的密码组合:')
 
 # 判断长度
 length = len(passwd)
 
 while (passwd.isspace() or length == 0):
 passwd = input("您输入的密码为空(或空格),请重新输入:")
 length = len(passwd)
 
 if length <= 8:
 flag_len = 1
 elif 8 < length < 16:
 flag_len = 2
 else:
 flag_len = 3
 
 flag_con = 0
 
 # 判断是否包含特殊字符
 for each in passwd:
 if each in symbols:
 flag_con += 1
 break
 
 # 判断是否包含字母
 for each in passwd:
 if each in chars:
 flag_con += 1
 break
 
 # 判断是否包含数字
 for each in passwd:
 if each in nums:
 flag_con += 1
 break
 
 # 打印结果
 while 1:
 print("您的密码安全级别评定为:", end='')
 if flag_len == 1 or flag_con == 1:
 print("低")
 elif flag_len == 2 or flag_con == 2:
 print("中")
 else:
 print("高")
 print("请继续保持")
 break
 
 print("请按以下方式提升您的密码安全级别:\n\
 \t1. 密码必须由数字、字母及特殊字符三种组合\n\
 \t2. 密码只能由字母开头\n\
 \t3. 密码长度不能低于16位'")
 break
 
 本帖最后由 向西而笑 于 2017-9-11 16:45 编辑 
 meet = 1
 symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
 chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
 nums = '0123456789'
 tip = ("请按以下方式提升您的密码安全级别:\n\
 \t1. 密码必须由数字、字母及特殊字符三种组合\n\
 \t2. 密码只能由字母开头\n\
 \t3. 密码长度不能低于16位'")
 
 while meet:
 passwd = input('请输入需要检查的密码组合:')
 
 # 判断长度
 length = len(passwd)
 
 while (passwd.isspace() or length == 0):
 passwd = input("您输入的密码为空(或空格),请重新输入:")
 length = len(passwd)
 
 if length <= 8:
 flag_len = 1
 elif 8 < length < 16:
 flag_len = 2
 else:
 flag_len = 3
 
 flag_con = 0
 
 # 判断是否包含特殊字符
 for each in passwd:
 if each in symbols:
 flag_con += 1
 break
 
 # 判断是否包含字母
 for each in passwd:
 if each in chars:
 flag_con += 1
 break
 
 # 判断是否包含数字
 for each in passwd:
 if each in nums:
 flag_con += 1
 break
 
 #判断开头是否为字母
 if passwd[0]  in chars:
 flag_con +=1
 
 # 打印结果
 while 1:
 print("您的密码安全级别评定为:", end='')
 if flag_len == 1 or flag_con == 1:
 print("低")
 print(tip)
 elif flag_len == 2 or flag_con <= 3:
 print("中")
 print(tip)
 else:
 print("高")
 print("请继续保持")
 meet = 0
 break
 搞定了,添加和修改的代码用红色标记了。
 
 
 
 | 
 |