【发布时间】:2016-11-29 10:18:47
【问题描述】:
我希望所有涉及一个或多个 None 变量的数学运算都返回 None。
例子:
a = None
b = 7
a*b
我希望最后一行返回 None,但它却给了我一个错误:
TypeError: *: 'NoneType' 和 'int' 的操作数类型不受支持
我明白为什么会出现这个错误以及所有这些,但是有没有办法强制结果只是一个None?
背景:我有几个函数可以挖掘数据并返回一个值,称为diff。稍后我将diff 乘以或添加到一些东西以获得有意义的信息,但并非我的所有原始数据都包含有用的diff,因此我将其设置为在这些情况下返回diff = None。我希望在绘制结果时能够跳过这些点。在我绘图时,Python 似乎可以轻松跳过数组中的 None 元素,所以我只想将运算结果设为 None。
【问题讨论】:
-
使用 float("NaN") 而不是
None -
类似于@donkopotamus,您可以使用十进制模块和
decimal.Decimal('NaN')为None。如果您想要正确舍入的十进制算术,这可能更可取。如果您的所有操作都使用Decimal数字,它将按照您想要的方式工作。