检查一个字符串是否只包含 Python 中的字母

目录

Check if a String contains only Letters in Python

  1. 检查一个字符串是否只包含 Python 中的字母
  2. 检查字符串是否仅包含 Python 中的字母和数字
  3. 检查输入是否仅包含 Python 中的字母

在 Python 中检查一个字符串是否只包含字母

使用该str.isalpha方法检查字符串是否仅包含字母,例如
if my_str.isalpha():. 如果字符串仅包含字母,则isalpha()方法将返回,否则返回。TrueFalse

主程序
my_str = 'apple' if my_str.isalpha(): # 👇️ this runs print('The string contains only letters') else: print('The string does NOT contain only letters')

我们使用该str.isalpha方法来检查字符串是否仅包含字母字符。

如果字符串中的所有字符都是字母且至少有一个字符,则str.isalpha()
方法返回,否则
返回。
TrueFalse

主程序
print('avocado'.isalpha()) # 👉️ True print('one two'.isalpha()) # 👉️ False

str.isalpha方法将字母字符视为在 Unicode 字符数据库中定义为“字母”的字符。

如果要检查字符串是否仅包含 ASCII(美国信息交换标准代码)字符,请使用该str.isascii() 方法。
主程序
print('зьж'.isalpha()) # 👉️ True print('зьж'.isascii()) # 👉️ False

如果字符串为空或字符串中的所有字符都是 ASCII,则str.isascii
方法返回
True,否则返回False.

或者,您可以使用该re.match()方法。

re.match如果您需要检查字符串是否仅包含特定字母,也可以使用该方法。

主程序
import re # ✅ Check if a string only contains letters match = re.match(r'^[a-zA-Z]+$', 'apple') if match: # 👇️ this runs print('The string contains only letters') else: print('The string does NOT contain only letters') # ------------------------------ # ✅ Check if a string only contains specific letters my_str = 'abc' match = re.match(r'^[abc]+$', my_str) if match: # 👇️ this runs print('The string contains only letters') else: print('The string does NOT contain only letters')

如果提供的正则表达式在字符串中匹配,则re.match方法返回一个对象。match

如果字符串与正则表达式模式不匹配,则match方法返回。None

第一个示例检查字符串是否仅包含 ASCII 字符。

主程序
import re match = re.match(r'^[a-zA-Z]+$', 'apple') if match: # 👇️ this runs print('The string contains only letters') else: print('The string does NOT contain only letters')

我们传递给该re.match方法的第一个参数是一个正则表达式。

方括号[]用于指示一组字符。

a-z和字符代表字母A-Z小写和大写范围。

插入符^匹配字符串的开头,美元符号$匹配字符串的结尾。

加号+使正则表达式匹配前面字符(字母范围)的 1 次或多次重复。

如果您需要检查字符串是否只包含某些字母,您也可以使用这种方法。

主程序
import re my_str = 'abc' match = re.match(r'^[abc]+$', my_str) if match: # 👇️ this runs print('The string contains only letters') else: print('The string does NOT contain only letters')

我们只添加了abc集合中的字符,因此正则表达式检查提供的字符串是否只包含指定的字符。

在 Python 中检查字符串是否只包含字母和数字

使用该str.isalnum()方法检查字符串是否仅包含字母和数字,例如if string.isalnum():.

如果字符串中的所有字符都是字母数字且字符串至少包含一个字符,则str.isalnum()方法返回,否则
返回。
TrueFalse

主程序
def is_alphanumeric(string): return string.isalnum() if is_alphanumeric('bobby123'): # 👇️ this runs print('The string contains only letters and numbers') else: print('The string does NOT contain only letters and numbers') print(is_alphanumeric('bobby')) # 👉️ True print(is_alphanumeric('bobby123')) # 👉️ True print(is_alphanumeric('bobbyhadz.com')) # 👉️ False print(is_alphanumeric('')) # 👉️ False print(is_alphanumeric(' ')) # 👉️ False
如果您正在寻找更灵活的正则表达式解决方案,请向下滚动到下一个副标题。

我们使用该str.isalnum()方法来检查字符串是否仅包含字母和数字。

如果字符串中的所有字符都是字母数字并且字符串至少包含一个字符,则str.isalnum
方法返回,否则,该方法返回
TrueFalse

主程序
print('bobby123'.isalnum()) # 👉️ True # 👇️ contains space print('bobby hadz'.isalnum()) # 👉️ False

或者,您可以使用该re.match()方法。

使用 re.match() 检查字符串是否只包含字母和数字

使用该re.match()方法检查字符串是否仅包含字母和数字,例如re.match(r'^[a-zA-Z0-9]+$', string).

如果字符串是字母数字,该re.match()方法将返回一个匹配对象,否则None返回。

主程序
import re def is_alphanumeric(string): return re.match(r'^[a-zA-Z0-9]+$', string) if is_alphanumeric('bobby123'): # 👇️ this runs print('The string contains only letters and numbers') else: print('The string does NOT contain only letters and numbers') # 👇️ <re.Match object; span=(0, 5), match='bobby'> print(is_alphanumeric('bobby')) # 👇️ <re.Match object; span=(0, 8), match='bobby123'> print(is_alphanumeric('bobby123')) print(is_alphanumeric('bobbyhadz.com')) # 👉️ None print(is_alphanumeric('')) # 👉️ None print(is_alphanumeric(' ')) # 👉️ None

如果提供的正则表达式在字符串中匹配,则re.match方法返回一个对象。match

如果字符串与正则表达式模式不匹配,则match()方法返回。None

我们传递给该re.match()方法的第一个参数是一个正则表达式。

主程序
import re def is_alphanumeric(string): return re.match(r'^[a-zA-Z0-9]+$', string)

方括号[]用于指示一组字符。

a-z和字符代表字母A-Z小写和大写范围。

0-9字符与范围内的数字相匹配

插入符^匹配字符串的开头,美元符号$匹配字符串的结尾。

加号+使正则表达式匹配前面字符(字母和数字范围)的 1 次或多次重复。

如果需要,您还可以调整正则表达式。这是一个检查字符串是否仅包含字母、数字、下划线和连字符的示例。

主程序
import re def is_alphanumeric(string): return re.match(r'^[a-zA-Z0-9_-]+$', string) # # 👇️ <re.Match object; span=(0, 5), match='bobby'> print(is_alphanumeric('bobby_hadz-123'))

如果需要调整正则表达式,请在方括号之间添加要匹配的字符。

在 Python 中检查输入是否只包含字母

使用该str.isalpha()方法检查用户输入是否仅包含字母,例如if user_input.isalpha():.

如果输入中的所有字符都是字母并且至少包含一个字符,则isalpha方法将返回。True

主程序
# ✅ Check if input contains only letters user_input = input('Enter a character: ') if user_input.isalpha(): print('Input contains only letters') # ----------------------------------------- # ✅ Check if input contains a single letter user_input = input('Enter a character: ') if len(user_input) == 1 and user_input.isalpha(): print('Input contains only letters') # ------------------------------------------ # ✅ Check if input contains only digits user_input = input('Enter a digit: ') if user_input.isdigit(): print('Input contains only digits') num = int(user_input) print(num)

第一个示例使用str.isalpha()方法检查输入是否仅存储字母。

主程序
user_input = input('Enter a character: ') if user_input.isalpha(): print('Input contains only letters')

The str.isalpha()
method returns True if all characters in the string are alphabetic and there
is at least one character, otherwise False is returned.

main.py
print('avocado'.isalpha()) # 👉️ True print('one two'.isalpha()) # 👉️ False

If you need to check if an input value stores exactly 1 letter, use the len()
function.

main.py
user_input = input('Enter a character: ') if len(user_input) == 1 and user_input.isalpha(): print('Input contains only letters')

The len() function
returns the length (the number of items) of an object.

The argument the function takes may be a sequence (a string, tuple, list, range
or bytes) or a collection (a dictionary, set, or frozen set).

If you need to check if the input value is an integer, use the str.isdigit()
method.

main.py
user_input = input('Enter a digit: ') if user_input.isdigit(): print('Input contains only digits') num = int(user_input) print(num)

The str.isdigit
method returns True if all characters in the string are digits and there is at
least 1 character, otherwise False is returned.

main.py
print('123'.isdigit()) # 👉️ True print('2.5'.isdigit()) # 👉️ False print('-123'.isdigit()) # 👉️ False

请注意,该str.isdigit()方法返回False负整数和浮点数。

这是因为负整数包含负号,而浮点数包含句点。

输入函数接受一个可选prompt参数并将其写入标准输出而没有尾随换行符

然后该函数从输入中读取该行,将其转换为字符串并返回结果。

input()即使用户输入数字,函数的返回值也保证是一个字符串。