我希望所有涉及一个或多个None变量的数学运算都返回None。如何将所有涉及None的python操作转换为None值?
例子:
a = None
b = 7
a*b
我想这最后一行返回无,但它不是给我一个错误:
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
我明白为什么这个错误存在,所有这一切,但有任何方式强迫结果只是一个None
?
背景:我有几个函数可以挖掘数据并返回一个值,名为diff
。稍后,我将diff
乘以或添加到几件事情上以获取有意义的信息,但并非我所有的原始数据都包含有用的diff
,因此在这些情况下我将它设置为返回diff = None
。当我绘制结果时,我希望能够跳过这些点。当我绘图时,Python似乎没有任何问题跳过数组中的None
元素,所以我只想让操作的结果为None
。
使用浮动( “南”),而不是'None' – donkopotamus
(HTTP [如何链属性查找可能返回无?]://计算器。COM/Q/15280511); [也许是一种“monad in python”](http://stackoverflow.com/q/8507200), –
类似于@donkopotamus,你可以使用十进制模块和'decimal.Decimal('NaN')'作为'None' 。如果你想正确舍入十进制算术,这可能会更好。如果您的所有操作都使用“十进制”数字,它将以您想要的方式工作。 – tdelaney