DoubleS、Zhao 发表于 2020-10-24 21:10:03

求求各位大佬解决一下我的简单问题吧

为什么不能出现密码等级为:高的情况呢??是哪里出问题了吗??


charts = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
number = '0123456789'
word = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

passwd = input('请输入需要检查的密码组合:')

length = len(passwd)

if length <=8:
    need = 1
elif 8 < length < 16:
    need = 2
else:
    need = 3

count = 0

for each in passwd:
    if each in charts:
      count += 1
      break

for each in passwd:
    if each in number:
      count += 1
      break

for each in passwd:
    if each in word:
      count += 1
      break
   

if count == 1 and need ==1:
      print('您的密码安全级别评定为:低')
      print("请按以下方式提升您的密码安全级别:\n\
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\
    \t2. 密码只能由字母开头\n\
    \t3. 密码长度不能低于16位")
      
elif count == 3 and need == 3 and (passwd in charts):
    print('您的密码安全级别评定为:gao')
    print('请继续保持')
else:
    print('您的密码安全级别评定为:zhong')

    print("请按以下方式提升您的密码安全级别:\n\
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\
    \t2. 密码只能由字母开头\n\
    \t3. 密码长度不能低于16位")

sunrise085 发表于 2020-10-24 21:24:51

可以出现密码等级为高啊
输入的密码符合那三个条件,结果就为高啊
你再看看你的程序中密码被评为gao的条件,你是不是输入的密码第一位不是特殊字符啊?

程永康 发表于 2020-10-24 21:28:07

你应该是搞错了,你的想法是让密码的第一个字符是字母,可实际上的要求是密码的第一个字符是特殊符号。第41行,错了
页: [1]
查看完整版本: 求求各位大佬解决一下我的简单问题吧