密码python项目号

Password python project number

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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",它会说它不包含数字


您的代码的第一个问题是您没有调用方法本身。本质上,您需要在每次引用 islower、isupper 和 isnumeric 之后放置方括号(即 ())。

不过,更深层次的问题在于您使用这些方法的意图。函数 islower、isupper、isumeric 在语义上并不分别表示"此字符串包含小写字母字符"、"此字符串包含大写字母字符"和"此字符串包含数字字符"。这些函数检查整个字符串是否仅由这些字符组成。

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

解决这个问题的方法不是很有效,就是单独检查字符串中的每个字符。