我必须检查字符串是否包含:字母数字、字母、数字、小写和大写字符

pal*_*lak 6 python string python-3.x

def fun(s):
    for i in s:
        if i.isalnum():
            print("True")
        if i.isalpha():
            print("True")
        if i.isdigit():
            print("True")
        if i.isupper():
            print("True") 
        if i.islower():
            print("True")
s=input().split()
fun(s)
Run Code Online (Sandbox Code Playgroud)

为什么即使它在 for 循环中也只打印一次 true

Tom*_*Dee 6

如果您想检查整个字符串是否包含这些不同的字符类型,那么您实际上不必遍历字符串。您只需使用 any 关键字即可。

def fun(s):
    if any(letter.isalnum() for letter in s):
        print("Is alphanumeric")
    if any(letter.isalpha() for letter in s):
        print("Is alpha")
    if any(letter.isdigit() for letter in s):
        print("Is digit")
    if any(letter.isupper() for letter in s):
        print("Is upper")
    if any(letter.islower() for letter in s):
        print("Is lower")

s=str(input())
fun(s)
Run Code Online (Sandbox Code Playgroud)