如何在 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.