Python如何筛选出实数

在 Python 中,我们可以使用一些方法来筛选出实数。实数是包括有理数和无理数在内的所有数的集合。在数学上,实数是指所有可以用数轴上的点来表示的数,包括整数、分数、无限不循环小数等。

下面我们将介绍两种方法来筛选出实数:一种是利用 Python 的内置函数和库函数,另一种是自定义函数。

方法一:利用内置函数和库函数

使用 isinstance() 函数和 math 模块

我们可以使用内置函数 isinstance() 结合 math 模块来判断一个数是否为实数。math 模块提供了许多数学函数和常量,包括对实数的支持。

import math

def is_real_number(num):
    return isinstance(num, (int, float))

# 测试
num1 = 10
num2 = 3.14
num3 = 5 + 2j

print(is_real_number(num1))  # True
print(is_real_number(num2))  # True
print(is_real_number(num3))  # False

在上面的代码中,我们定义了一个函数 is_real_number(),根据传入的参数 num,使用 isinstance() 函数判断其是否为整数或浮点数,如果是则返回 True,否则返回 False。

使用正则表达式

另一种方法是使用正则表达式来判断一个字符串是否为实数。我们可以利用 re 模块来实现这一功能。

import re

def is_real_number(num_str):
    return bool(re.match(r'^[-+]?\d*\.?\d+$', num_str))

# 测试
num_str1 = '10'
num_str2 = '3.14'
num_str3 = '5 + 2j'

print(is_real_number(num_str1))  # True
print(is_real_number(num_str2))  # True
print(is_real_number(num_str3))  # False

在上面的代码中,我们定义了一个函数 is_real_number(),根据传入的参数 num_str,使用 re 模块中的 match() 函数和正则表达式来判断其是否为实数。正则表达式 ^[-+]?\d*\.?\d+$ 可以匹配整数、小数和正负号。

方法二:自定义函数

判断是否为实数

我们也可以自定义一个函数来判断一个数是否为实数。一个数如果同时是整数和浮点数,则可以认为它是实数。

def is_real_number(num):
    return type(num) in (int, float)

# 测试
num1 = 10
num2 = 3.14
num3 = 5 + 2j

print(is_real_number(num1))  # True
print(is_real_number(num2))  # True
print(is_real_number(num3))  # False

在上面的代码中,我们定义了一个函数 is_real_number(),根据传入的参数 num,判断其类型是否为整数或浮点数,如果是则返回 True,否则返回 False。

流程图

下面是筛选出实数的流程图:

flowchart TD
    Start --> Input
    Input --> |判断是否为数值| 判断类型
    判断类型 --> |整数或浮点数| 返回True
    判断类型 --> |其他类型| 返回False
    返回True --> End
    返回False --> End
    End

总结

通过以上两种方法,我们可以筛选出实数,并且可以根据具体需求选择合适的方法。使用内置函数和库函数可以更加简洁高效地判断一个数是否为实数,而自定义函数则可以更加灵活地满足不同的需求。希望本文能帮助你更好地理解如何在 Python 中筛选出实数。