Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有标准Python类对浮点范围执行布尔运算?_Python_Boolean Operations - Fatal编程技术网

是否有标准Python类对浮点范围执行布尔运算?

是否有标准Python类对浮点范围执行布尔运算?,python,boolean-operations,Python,Boolean Operations,我需要收集关于浮点变量近似值的多条信息。信息看起来像“39

我需要收集关于浮点变量近似值的多条信息。信息看起来像“39 我希望有一个类以浮点间隔的形式包含这样的信息。我还想对这些间隔执行布尔运算,使其看起来像:

float_interval(1,5) and float_interval(2,6) == float_interval(2,5)
float_interval(1,2) and float_interval(3,4) == None
float_interval(1,2) or float_interval(3,4) == i_do_not_know_yet
我是在描述某个著名的班级,还是要自己写


如果有人感兴趣,变量是怀孕期间的胎儿胎龄(以周为单位)。在许多病例对照研究中,并不总是直接提到胎龄,而是有关于妊娠三个月或分娩是足月还是早产等信息。因此,我可以推断出大致的胎龄,并将其归入相应的类别。

下面是一个简单的概念证明逻辑实现,用于将布尔函数应用于区间的有限并集。间隔的有限并集表示为(开始、结束)对的列表

示例(Python 2):


在Python3中,返回值将是一个惰性的
zip()
对象,而不是一个列表。您可以在
apply\u boolean\u function()
中的return语句中添加对
list()
的调用,以获取列表。

下面是一个简单的概念验证逻辑实现,用于将布尔函数应用于有限的区间并集。间隔的有限并集表示为(开始、结束)对的列表

示例(Python 2):


在Python3中,返回值将是一个惰性的
zip()
对象,而不是一个列表。您可以在
apply\u boolean\u function()
中的return语句中添加对
list()
的调用,以获取列表。

功能强大的Symphy软件包内置了一个
Interval
类。示例代码:

import sympy
I1 = sympy.Interval(1, 5)
I2 = sympy.Interval(2, 6)
I3 = I1 & I2
print(I3)

有关详细信息,请参阅。

功能强大的Symphy软件包具有内置的
间隔。示例代码:

import sympy
I1 = sympy.Interval(1, 5)
I2 = sympy.Interval(2, 6)
I3 = I1 & I2
print(I3)

有关详细信息,请参阅。

有一个名为的包,允许您高效地对间隔执行某些操作。它已经有很长一段时间没有更新了,但它可能对您有用,或者给您一个要查找的提示。@zvone哈哈,您有一点:)标准库中没有这样的类。该类必须表示区间的有限并集,如上一个示例所示。它的实现相对简单,但会受到浮点数固有精度的限制。这样做有什么好处是用基本数学函数无法解决的?@TemporalWolf我可以使用基本数学函数,但我还需要将结果存储到某个位置。此外,我希望这个东西是可重用的,以避免为每个新的条件组合重写类似的if-then语句。它已经有很长一段时间没有更新了,但它可能对您有用,或者给您一个要查找的提示。@zvone哈哈,您有一点:)标准库中没有这样的类。该类必须表示区间的有限并集,如上一个示例所示。它的实现相对简单,但会受到浮点数固有精度的限制。这样做有什么好处是用基本数学函数无法解决的?@TemporalWolf我可以使用基本数学函数,但我还需要将结果存储到某个位置。此外,我希望这个东西是可重用的,以避免为每个新的条件组合重写类似的if-then语句。
import sympy
I1 = sympy.Interval(1, 5)
I2 = sympy.Interval(2, 6)
I3 = I1 & I2
print(I3)