密码强度代码帮助python
所以我用python编写代码来告诉您密码强度,但它并没有按照我说的那样做,并且一直说密码无效,除非您只使用数字密码强度代码帮助python,python,Python,所以我用python编写代码来告诉您密码强度,但它并没有按照我说的那样做,并且一直说密码无效,除非您只使用数字 hy=1 while(y==1): passwordentered=str(input("plaese enter your proposed password ")) x=len(passwordentered) numbers=passwordentered.count ("1"and"2"and"3"and"4"and"5"and"6"and"7"and"8"and"9") lo
hy=1
while(y==1):
passwordentered=str(input("plaese enter your proposed password "))
x=len(passwordentered)
numbers=passwordentered.count ("1"and"2"and"3"and"4"and"5"and"6"and"7"and"8"and"9")
lowerletters=passwordentered.count ("a"and"b"and"c"and"d"and"e"and"f"and"g"and"h"and"i"and"j"and"k"and"l"and"m"and"n"and"o"and"p"and"q"and"r"and"s"and"t"and"u"and"v"and"w"and"x"and"z")
higherletters=passwordentered.count ("A"and"B"and"C"and"D"and"E"and"F"and"G"and"H"and"I"and"J"and"K"and"L"and"M"and"N"and"O"and"P"and"Q"and"R"and"S"and"T"and"U"and"V"and"W"and"X"and"Z")
if(numbers>0 and lowerletters==0 and higherletters==0):
david=9
elif(lowerletters>0 and numbers==0 and higherletters==0):
david=9
elif(higherletters>0 and numbers==0 and lowerletters==0):
david=9
elif(higherletters>0 and numbers>0 and lowerletters==0):
david=8
elif(higherletters>0 and lowerletters>0 and numbers==0):
david=8
elif(numbers>0 and lowerletters>0 and higherletters==0):
david=8
elif(numbers>0 and lowerletters>0 and higherletters>0):
david=7
elif(x>12 or x<6):
david=10
elif(lowerletters==0 and numbers==0 and higherletters==0):
david=10
if(david==10):
print("the password you entered was invalid\
why not try again.")
y=1
elif(david==9):
print("the password you entered is very weak,try to include numbers, lower case letters and upper case letters. why not have another go.")
y=1
elif(david==8):
print("your password is good but it could be better try to include numbers, lower case letters and upper case letters. why not have another go.")
y=1
elif(david==7):
print("your password is really good. thank you for using this program")
y=0
hy=1
而(y==1):
passwordentered=str(输入(“请输入您建议的密码”))
x=len(输入密码)
number=passwordentered.count(“1”和“2”和“3”和“4”和“5”和“6”和“7”和“8”和“9”)
Lowerleters=passwordentered.count(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“z”)
higherletters=输入密码。计数(“A”和“B”和“C”和“D”和“E”和“F”和“G”和“H”和“I”和“J”和“K”和“L”和“M”和“N”和“O”和“P”和“Q”和“R”和“S”和“T”和“U”和“V”和“W”和“X”和“Z”)
如果(数字>0,较低者==0,较高者==0):
大卫=9
elif(下限值>0,数字==0,上限值==0):
大卫=9
elif(高位字母>0,数字==0,低位字母==0):
大卫=9
elif(高位字母>0,数字>0,低位字母==0):
大卫=8
elif(高位字母>0,低位字母>0,数字==0):
大卫=8
elif(数字>0,低位字母>0,高位字母==0):
大卫=8
elif(数字>0,低位字母>0,高位字母>0):
大卫=7
elif(x>12或x首先,Python是一种非常宽容的语言,你可以做很多其他语言做不到的事情,但是:
numbers=passwordentered.count("1"and"2"and"3"and"4"and"5"and"6"and"7"and"8"and"9")
将不起作用。Python将以布尔表达式的形式计算括号内的所有内容,这行代码基本上归结为:
numbers=passwordentered.count("9")
其他检查也是如此。要从中获得您真正想要的内容,您应该使用某种循环。您可以使用以下内容:
numbers = sum( ch.isdigit() for ch in passwordentered )
这将为您提供在密码字符串中找到的数字的计数。您可以对此进行修改以计算小写和大写字母的数量
最后,您应该尝试清理您的if语句,您可以更整洁地分解它们,使其更具可读性。如果这样编写,那些count
函数将无法工作
尝试替换此选项:
numbers=passwordentered.count ("1"and"2"and"3"and"4"and"5"and"6"and"7"and"8"and"9")
lowerletters=passwordentered.count ("a"and"b"and"c"and"d"and"e"and"f"and"g"and"h"and"i"and"j"and"k"and"l"and"m"and"n"and"o"and"p"and"q"and"r"and"s"and"t"and"u"and"v"and"w"and"x"and"z")
higherletters=passwordentered.count ("A"and"B"and"C"and"D"and"E"and"F"and"G"and"H"and"I"and"J"and"K"and"L"and"M"and"N"and"O"and"P"and"Q"and"R"and"S"and"T"and"U"and"V"and"W"and"X"and"Z")
以下是:
numbers = sum(typ in "0123456789" for typ in passwordentered)
lowerletters = sum(typ in "abcdefghijklmnopqrstuvwxyz" for typ in passwordentered)
higherletters = sum(typ in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for typ in passwordentered)
对于详细的方法,请执行以下操作:
numberlist = "0123456789"
Lletterlist = "abcdefghijklmnopqrstuvwxyz"
Hletterlist = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numbers=0
lowerletters=0
higherletters=0
for f in xrange(0, x):
if numberlist.find(passwordentered[f]) != -1:
numbers = numbers+1
if Lletterlist.find(passwordentered[f]) != -1:
lowerletters = lowerletters+1
if Hletterlist.find(passwordentered[f]) != -1:
higherletters = higherletters+1
我建议你读一下正则表达式,它可以使这样的情况变得更简单。