密码python项目编号

时间:2016-12-15 13:12:19

标签: python

我正在为学校制作一个密码项目,我遇到了一个问题。以下是无法正常工作的代码:

def passwordStrength(password):
    if password.islower():
        print("Your password is weak as it only contains lower case letters")
    elif password.isupper():
        print("Your password is weak as it only contains capital letters")
    elif password.isnumeric():
        print("Your password is weak as it only contains numbers")
    elif password.islower and password.isupper:
        print("Your password is medium as it contains no numbers")
    elif password.islower and password.isnumeric:
        print("Your password is medium as it contains no uppercases")
    elif password.isupper and password.isnumeric:
        print("Your password is medium as it contains no lowercases")
    elif password.islower and password.isupper and password.isnumeric:
        print("Your password is strong")

但如果我输入密码,例如“asasASAS1212”,则说它不包含数字

1 个答案:

答案 0 :(得分:3)

您的代码的第一个问题是您不是自己调用方法。本质上,你需要在每次引用islower,isupper和isnumeric之后加上括号(ie())。

更深层次的问题在于您使用这些方法背后的意图。函数islower,isupper,isnumeric在语义上不表示“此字符串具有小写字母字符”,“此字符串具有大写字母字符”和“此字符串具有数字字符”。这些函数检查整个字符串是否仅包含 这些字符。

因此,如果字符串中有一个数字(例如“asd123”),则方法islower返回false,因为该字符串中的字符不是小写字母。

该问题的解决方案,而不是一个非常有效的解决方案,是单独检查字符串中的每个字符。