在我的密码检查器中,我不知道为什么当我在输入中使用大写和小写时,它并没有输出强密码。
enter code here
print("Password Checker")
pw=input("Enter Your Password Here: ")
if len(pw)<=5:
if pw!=pw.upper()or pw!=pw.lower():
print("WEAK Password")
elif len(pw)>=6 and len(pw)<=12:
if pw==pw.lower():
print("Medium Password")
elif len(pw)>=13:
print("Too Long")
elif len(pw)<=12 and len(pw)>=6:
if pw==pw.upper() and pw==pw.lower():
print("Thats A STRONG Password")
答案 0 :(得分:2)
你的逻辑在这里倒退
if pw!=pw.upper() or pw!=pw.lower():
你要使用
if pw != pw.upper() and pw != pw.lower():
或
if pw == pw.upper() or pw == pw.lower():
您在稍后的行中遇到类似的问题
if pw==pw.upper() and pw==pw.lower():
如果您想检查至少有一个上部和一个下部字母,您可以执行类似
的操作import string
if any(i in string.ascii_lowercase for i in pw) and any(i in string.ascii_uppercase for i in pw):
答案 1 :(得分:2)
if pw==pw.upper() and pw==pw.lower():
print("Thats A STRONG Password")
如果pw同时为大写和小写,请在此处查看。 我想你想检查密码是否只是小写而不仅仅是大写。所以它应该是
if pw != pw.upper() and pw != pw.lower():
print("Thats A STRONG Password")
当然在&#34;弱传#34;它应该是
if pw == pw.upper() or pw == pw.lower():
print("Thats A WEAK Password")
因为您要检查pass是全部小写还是全部大写
答案 2 :(得分:1)
确定。如果字符串中包含数字或特殊字符,则确定字符串是全部大写字母还是全部小写字母的.upper()和.lower()方法不会起作用。
而是使用.isupper()来检查字符串中的特定字符是否为大写。和.islower()表示小写。这些方法每个字符都检查字符串,因此代码行将是:
if any(x.isupper() for x in pw) and any(x.islower() for x in pw):
所以完整的代码(组织逻辑)将是:
print("Password Checker")
pw=input("Enter Your Password Here: ")
#checking if password is to short, or to long.
if len(pw)<=5 or len(pw)>=13:
if len(pw)<=5:
print ("To Short")
else:
print ("Too Long")
else:#password is correct length
#checking if a uppercase AND a lowwercase.
if any(x.isupper() for x in pw) and any(x.islower() for x in pw):
print ("Thats A STRONG Password")
else:
print ("Medium Password")
如果我能回答任何有关此事的进一步问题,请告诉我。
注意:从使用input()更改为raw_input()以与python 2.7
兼容答案 3 :(得分:0)
这是我制作的密码检查器,用于检查符号和数字以及大写字母:
def check_password(password):
strength = 0
symbol_list = ['!','@','#','$','%','^','&','*','(',')','[',']','{','}',';',':','<','>',',','.']
num_list = ['1','2','3','4','5','6','7','8','9','0']
if len(password) >= 8:
# this is the part that checks for capitol letters
for k in password:
if k == k.upper:
strength +=1
for i in symbol_list:
if i in password:
strength+=1
for j in num_list:
if j in password:
strength += 1
# determines the strength
if strength <= 5:
print("Weak password")
elif strength > 5 and strength < 8:
print("Ok Password")
if strength > 8:
print("Strong password")
else:
print("Password too short")
注意:您可以更改 if 语句中的值以满足您的需要。