Types 为什么一个不等式不能转化为布尔值?

Types 为什么一个不等式不能转化为布尔值?,types,boolean,sage,Types,Boolean,Sage,我不知道这是一个Sage问题还是Python问题,但这就是问题所在 var('k') awPkf(k) = k+7 awPkpf(k) = k+5 batkola(k)=2*(k+1)*awPkpf(k)/((k-2)*awPkf(k)) 当我输入“batkola(4)”时,我得到了预期的45/11。 然而,当我键入“batkola(4)QQ(batkola(4))时,我就成功了。评估键入(batkola(4)):你会得到 sage: type(batkola(4)) <class 's

我不知道这是一个Sage问题还是Python问题,但这就是问题所在

var('k')
awPkf(k) = k+7
awPkpf(k) = k+5
batkola(k)=2*(k+1)*awPkpf(k)/((k-2)*awPkf(k))
当我输入“batkola(4)”时,我得到了预期的45/11。 然而,当我键入“batkola(4)QQ(batkola(4))时,我就成功了。

评估
键入(batkola(4))
:你会得到

sage: type(batkola(4))
<class 'sage.symbolic.expression.Expression'>
所以你可以

sage: ("no","yes")[bool(batkola(4)<=4)]
'no'

sage:(“no”,“yes”)[bool(batkola(4)
ratkola
函数返回什么?在它上面找不到任何文档-是不是返回了一些奇怪的对象,使比较运算符过载,从而返回字符串而不是bool?对不起,这是我为“batkola”输入的错误“。同样的问题是关于
batkola
的,然后它在上面定义了!这看起来不像Python函数定义——应该有
lambda
def
。。。
sage: type(batkola(4))
<class 'sage.symbolic.expression.Expression'>
sage: batkola(4) <= 4
(45/11) <= 4
sage: bool(batkola(4) <= 4)
False
sage: ("no","yes")[bool(batkola(4)<=4)]
'no'