首先,你的代码中存在一个缩进错误。在if length == 0:和if 0< length <=8:这两行后面的print语句前面有多余的空格,导致代码无法正确执行。正确的缩进应该是:if length == 0: print('密码不能为空')if 0 < length <= 8: print("低级密码")
其次,你在判断密码强度时使用了两个循环,但是在第一个循环中没有正确地使用break语句来跳出循环。这会导致即使已经判断出密码强度,程序仍然会继续执行第二个循环。为了修复这个问题,你需要在满足条件时使用break来跳出循环。
另外,在判断密码强度时,你可以使用布尔变量来记录是否包含了对应的字符类型,并在循环结束后根据这些变量的值来判断密码强度。
下面是修正后的代码:temp = input('输入密码')password = templength = len(password)simple1 = 'abcdefghijklmnopqrstuvwxyz'simple2 = '1234567890'simple3 = simple1.upper()simple4 = "~!@#$%^&*()_=-/,.?<>;:[]{}\\|"a = Falseb = Falsec = Falseif length == 0: print('密码不能为空')if 0 < length <= 8: print("低级密码")if 8 < length < 16: for i in password: if i in simple1 or i in simple3: a = True if i in simple2: b = True if i in simple4: c = True if a and b and c: print("高级密码") elif a or b or c: print("中级密码") else: print("低级密码")if length >= 16: for i in password: if i in simple1 or i in simple3: a = True if i in simple2: b = True if i in simple4: c = True if a and b and c: print('高级密码') elif a or b or c: print("中级密码") else: print("低级密码")print(a, b, c, length)
注意:以上代码只针对你给出的问题进行了修复,但可能仍然存在其他潜在问题或改进空间。如果有问题请再提问。
球一个最佳答案谢谢啦!这对我非常重要!
|