欢迎访问宙启技术站
智能推送

使用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 提供了多种方法来检查输入是否是数字。在实际编程中,我们可以根据需要选择适合的方法。