我要求用户输入密码。然后,如果密码符合特定条件,程序将确定密码是否有效。
这是有问题的部分。
for i in range(0, len(password)):
if(password[i].isdigit()==True):
isNum+=1
elif (password[i].isalpha()==True):
isLetter+=1
elif (password[i].isupper()==True):
isUpper+=1
我的程序可以很好地检测数字和字母,但不能检测大写字母。如果我输入密码1234Foxes,它会说有4个字母,4个数字,总共8个字符,但它说有0个大写字母。
最佳答案
如果isupper
为真,则isalpha
一定为真,因为大写字母必然是字母。由于您使用的是 elif
,因此条件是排他的,一旦 isalpha
检查为真,检查就会停止。
如果您希望运行这两项检查,请不要使用 elif
:
for character in password:
if(character.isdigit()):
isNum += 1
elif (character.isalpha()):
isLetter += 1
if (character.isupper()):
isUpper += 1
我还通过直接迭代字符串摆脱了索引 password
的需要,以及多余的 == True
关于python - 为什么我的程序无法检测大写字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140201/