在 Python 中检查一个字符串是数字还是字母

在 Python 中检查一个字符串是数字还是字母

Check if a string is a number or a letter in Python

检查字符串是数字还是字母:

  1. 使用str.isnumeric()方法检查字符串是否仅包含数字。
  2. 使用str.isalpha()方法检查字符串是否只包含字母。
主程序
# ✅ check if a string is a number print('5'.isnumeric()) # 👉️ True print('X'.isnumeric()) # 👉️ False # ✅ check if a string is a letter print('B'.isalpha()) # 👉️ True print('5'.isalpha()) # 👉️ False # ✅ check if a string contains only letters and numbers print('bobby123'.isalnum()) # 👉️ True print('bobbyhadz.com'.isalnum()) # 👉️ False my_str = '573' if my_str.isnumeric(): # 👇️ this runs print('The string is a number') elif my_str.isalpha(): print('The string contains only letters')

str.isnumeric

方法返回如果
字符串True中的所有字符都是数字,并且至少有一个字符,否则False返回。

主程序
print('5'.isnumeric()) # 👉️ True print('50'.isnumeric()) # 👉️ True print('-50'.isnumeric()) # 👉️ False print('3.14'.isnumeric()) # 👉️ False print('A'.isnumeric()) # 👉️ False

请注意,该str.isnumeric()方法返回False负数(它们包含负数)和浮点数(它们包含句点)。

try/except如果需要检查字符串是有效整数还是有效浮点数,请使用语句。
主程序
# ✅ Check if a string is a valid integer def is_integer(string): try: int(string) except ValueError: return False return True print(is_integer('359')) # 👉️ True print(is_integer('-359')) # 👉️ True print(is_integer('3.59')) # 👉️ False print(is_integer('3x5')) # 👉️ False # ---------------------------------------------- # ✅ Check if a string is a valid float def is_float(string): try: float(string) except ValueError: return False return True print(is_float('359')) # 👉️ True print(is_float('-359')) # 👉️ True print(is_float('3.59')) # 👉️ True print(is_float('3x5')) # 👉️ False
如果将字符串转换为整数或浮点数失败,该except 块将在我们ValueError通过从函数返回来处理的位置运行。 False

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

主程序
print('BOBBY'.isalpha()) # 👉️ True # 👇️ contains space print('BOBBY HADZ'.isalpha()) # 👉️ False

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

如果需要检查字符串是否为 ASCII (az AZ) 字母,请使用
string模块和in运算符。

主程序
import string ascii_letters = string.ascii_letters # 👇️ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ print(ascii_letters) my_str = 'B' if my_str in ascii_letters: # 👇️ this runs print('The string is an ASCII letter') else: print('The string is NOT an ASCII letter') print('B' in ascii_letters) # 👉️ True print('Ф' in ascii_letters) # 👉️ False

string.ascii_letters属性返回一个包含小写和大写 ASCII 字母的字符串。

in 运算符
测试成员资格

例如,如果是 的成员,则
x in s计算为 ,否则计算为TruexsFalse

如果您需要检查字符串是否仅包含数字和字母,请使用该
str.isalnum()方法。

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

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