使用Python函数检查输入是否是数字
发布时间:2023-05-20 22:15:44
Python 提供了多种方法来检查输入是否是数字。在本文中,我们将介绍一些常用的方法。
方法一:使用内置函数
Python 提供了内置函数 isnumeric()、isdigit()、isdecimal() 来检查输入是否是数字。它们的返回值均为布尔型。
- isnumeric() 检查字符串是否只包含数字字符,包括十进制数字字符和其他数字字符(如罗马数字、汉字数字等)。
- isdigit() 检查字符串是否只包含十进制数字字符。
- isdecimal() 检查字符串是否只包含阿拉伯数字字符(0-9)。
代码示例:
num1 = "1234" num2 = "④⑤" num3 = "ⅩⅢ" num4 = "12.34" print(num1.isnumeric()) # True print(num2.isnumeric()) # True print(num3.isnumeric()) # True print(num4.isnumeric()) # False print(num1.isdigit()) # True print(num2.isdigit()) # False print(num3.isdigit()) # False print(num4.isdigit()) # False print(num1.isdecimal()) # True print(num2.isdecimal()) # False print(num3.isdecimal()) # False print(num4.isdecimal()) # False
方法二:使用正则表达式
Python 的 re 模块提供了正则表达式的支持。使用正则表达式可以更灵活地进行匹配。
代码示例:
import re
def is_number(num):
pattern = re.compile(r'^\d+$') # 匹配一个或多个数字
return bool(pattern.match(num))
num1 = "1234"
num2 = "12.34"
num3 = "1 2 3 4"
print(is_number(num1)) # True
print(is_number(num2)) # False
print(is_number(num3)) # False
上面的代码中,我们使用 \d+ 匹配一个或多个数字,^ 表示字符串的开始,$ 表示字符串的结束。如果字符串符合要求,则返回 True,否则返回 False。
方法三:使用 try-except 语句
使用 Python 的 try-except 语句也可以检查输入是否是数字。具体做法是将输入的字符串转换为数字,如果转换成功,则说明输入是数字,否则抛出异常。
代码示例:
def is_number(num):
try:
float(num)
return True
except ValueError:
return False
num1 = "1234"
num2 = "12.34"
num3 = "1 2 3 4"
print(is_number(num1)) # True
print(is_number(num2)) # True
print(is_number(num3)) # False
上面的代码中,我们使用 float() 函数将输入的字符串转换为浮点数,如果转换成功则返回 True,否则抛出 ValueError 异常,返回 False。
综上所述,Python 提供了多种方法来检查输入是否是数字。在实际编程中,我们可以根据需要选择适合的方法。
