在 Python 中检查一个字符串是数字还是字母
Check if a string is a number or a letter in Python
检查字符串是数字还是字母:
- 使用
str.isnumeric()
方法检查字符串是否仅包含数字。 - 使用
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()
方法返回,否则返回。True
False
主程序
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
计算为 ,否则计算为。True
x
s
False
如果您需要检查字符串是否仅包含数字和字母,请使用该
str.isalnum()
方法。
如果字符串中的所有字符都是字母数字并且字符串至少包含一个字符,则str.isalnum
方法返回,否则该方法返回。True
False
主程序
print('bobby123'.isalnum()) # 👉️ True # 👇️ contains space print('bobby hadz'.isalnum()) # 👉️ False