如何在 Python 中检查字符串是否包含字母或数字?


要检查 Python 中的字符串是否包含字母或数字,我们可以使用一些内置方法,例如 isalpha() 和 isdigit()。

isalpha() 如果字符串中的所有字符都是字母(英文字母),则返回 True,否则返回 False。

isdigit() 如果字符串中的所有字符都是数字,则返回 True,否则返回 False。

以下两个示例演示了如何检查字符串是否包含字母或数字。

检查字符串是否包含字母或数字

示例

在此示例中,我们首先使用 input() 函数提示用户输入一个字符串。然后,我们使用 isalpha() 方法检查字符串是否仅包含字母。如果字符串仅包含字母,则打印“字符串仅包含字母”。

如果字符串不只包含字母,则我们使用 isdigit() 方法检查它是否仅包含数字。如果字符串仅包含数字,则打印“字符串仅包含数字”。

如果字符串既不只包含字母也不只包含数字,则打印“字符串既包含字母又包含数字”。

input_str = input("Enter a string: ")

if input_str.isalpha():
    print("The string has only alphabets.")
elif input_str.isdigit():
    print("The string has only numbers.")
else:
    print("The string has both alphabets and numbers.")

输出

Enter a string: alphabet123
The string has both alphabets and numbers.

示例

在此示例中,我们定义了一个名为 has_alpha_or_num() 的函数,该函数以字符串作为输入,并使用 for 循环和 isalpha() 和 isdigit() 方法检查它是否同时包含字母和数字。

然后,我们定义一个名为 my_string 的字符串,该字符串同时包含字母和数字,并使用 my_string 作为输入调用 has_alpha_or_num() 函数。由于 my_string 同时包含字母和数字,因此输出将为“字符串既包含字母又包含数字”。

def has_alpha_or_num(input_str):
    has_alpha = False
    has_num = False
    for char in input_str:
        if char.isalpha():
            has_alpha = True
        elif char.isdigit():

            has_num = True
        if has_alpha and has_num:
            return True
    return False

my_string = "abc123"
if has_alpha_or_num(my_string):
    print("The string has both alphabets and numbers.")
else:
    print("The string does not have both alphabets and numbers.")

输出

The string has both alphabets and numbers.

示例

在此示例中,我们使用 for 循环遍历输入字符串中的每个字符,并使用 isalpha() 和 isdigit() 方法检查该字符是否为字母或数字。

然后,我们使用两个布尔变量 has_alpha 和 has_num 分别跟踪字符串是否包含字母和数字。如果 has_alpha 和 has_num 都为 True,则我们知道字符串同时包含字母和数字,并打印“字符串既包含字母又包含数字”。

如果只有 has_alpha 为 True,则我们知道字符串仅包含字母,并打印“字符串仅包含字母”。如果只有 has_num 为 True,则我们知道字符串仅包含数字,并打印“字符串仅包含数字”。

如果 has_alpha 和 has_num 都为 False,则我们知道字符串既不包含字母也不包含数字,并打印“字符串既不包含字母也不包含数字”。

input_str = input("Enter a string: ")
has_alpha = False
has_num = False

for char in input_str:
    if char.isalpha():
        has_alpha = True
    elif char.isdigit():
        has_num = True
    if has_alpha and has_num:
        break

if has_alpha and has_num:
    print("The string has both alphabets and numbers.")
elif has_alpha:
    print("The string has only alphabets.")
elif has_num:
    print("The string has only numbers.")
else:
    print("The string has neither alphabets nor numbers.")

输出

Enter a string: #$&*@#
The string has neither alphabets nor numbers.

示例

在此示例中,我们使用 re 模块对输入字符串执行正则表达式匹配。

我们使用正则表达式 [a-zA-Z] 匹配任何字母(大写或小写)和 \d 匹配任何数字。我们使用 re 模块的 search() 函数在输入字符串中搜索这些模式。

如果在输入字符串中都找到了 [a-zA-Z] 和 \d,则我们知道字符串同时包含字母和数字,并打印“字符串既包含字母又包含数字”。

如果只找到了 [a-zA-Z],则我们知道字符串仅包含字母,并打印“字符串仅包含字母”。如果只找到了 \d,则我们知道字符串仅包含数字,并打印“字符串仅包含数字”。

如果既没有找到 [a-zA-Z] 也没有找到 \d,则我们知道字符串既不包含字母也不包含数字,并打印“字符串既不包含字母也不包含数字”。

import re
input_str = input("Enter a string: ")
if re.search(r'[a-zA-Z]', input_str) and re.search(r'\d', input_str):
    print("The string has both alphabets and numbers.")
elif re.search(r'[a-zA-Z]', input_str):
    print("The string has only alphabets.")
elif re.search(r'\d', input_str):
    print("The string has only numbers.")
else:
    print("The string has neither alphabets nor numbers.")

输出

Enter a string: xyz123
The string has both alphabets and numbers.

示例

在此示例中,我们使用 any() 函数检查输入字符串中的任何字符是否满足条件。

我们使用 isalpha() 方法检查字符是否为字母,并使用 isdigit() 方法检查字符是否为数字。我们将生成器表达式传递给 any() 函数,以检查输入字符串中的任何字符是否满足每个条件。

如果在输入字符串中都找到了字母和数字,则我们知道字符串同时包含字母和数字,并打印“字符串既包含字母又包含数字”。

如果只找到了字母,则我们知道字符串仅包含字母,并打印“字符串仅包含字母”。如果只找到了数字,则我们知道字符串仅包含数字,并打印“字符串仅包含数字”。

如果既没有找到字母也没有找到数字,则我们知道字符串既不包含字母也不包含数字,并打印“字符串既不包含字母也不包含数字”。

input_str = input("Enter a string: ")
if any(char.isalpha() for char in input_str) and any(char.isdigit() for char in input_str):
    print("The string has both alphabets and numbers.")
elif any(char.isalpha() for char in input_str):
    print("The string has only alphabets.")
elif any(char.isdigit() for char in input_str):
    print("The string has only numbers.")
else:
    print("The string has neither alphabets nor numbers.")

输出

Enter a string: 5678910
The string has only numbers.

更新于: 2023年8月10日

3K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告