用于查询 SymPy 对象关于假设的模块。

class sympy.assumptions.ask.AssumptionKeys[源代码][源代码]

此类包含 ask 支持的所有键。应通过实例 sympy.Q 访问。

属性:
代数
反厄米
交换性
复杂
复杂元素
复合
对角线
eq
甚至
extended_negative
extended_nonnegative
extended_nonpositive
extended_nonzero
扩展正面
extended_real
有限
fullrank
ge
gt
厄米特
虚构的
无限
整数
整数元素
可逆的
非理性
is_true
le
下三角
lt
负面的
负无穷
非整数
非负
非正数
非零
正常
奇数
正交
积极的
正定
正无穷
质数
理性
真实
真实元素
单数
平方
对称
先验的
三角形
unit_triangular
单一的
上三角
sympy.assumptions.ask.ask(proposition, assumptions=True, context={})[源代码][源代码]

用于评估带有假设的命题的函数。

参数:
命题布尔值

将被评估为布尔值的命题。如果这不是 AppliedPredicate ,它将被 Q.is_true 包装。

假设布尔值,可选

评估 命题 的本地假设。

上下文AssumptionsContext,可选

评估 命题 的默认假设。默认情况下,这是 sympy.assumptions.global_assumptions 变量。

返回:
True, False, 或 None
Raises:
TypeError : 命题假设 不是有效的逻辑表达式。命题或假设不是有效的逻辑表达式。
ValueError假设不一致。

参见

sympy.assumptions.refine.refine

使用假设进行简化。如果无法确定真值,命题不会被简化为 None

注释

假设中的关系尚未实现(目前),因此以下内容不会产生有意义的结果。

>>> ask(Q.positive(x), x > 0)

然而,这是一个正在进行的工作。

示例

>>> from sympy import ask, Q, pi
>>> from sympy.abc import x, y
>>> ask(Q.rational(pi))
False
>>> ask(Q.even(x*y), Q.even(x) & Q.integer(y))
True
>>> ask(Q.prime(4*x), Q.integer(x))
False

如果无法确定真值,将返回 None

>>> print(ask(Q.odd(3*x))) # cannot determine unless we know x
None

如果假设不一致,则会引发 ValueError

>>> ask(Q.integer(x), Q.even(x) & Q.odd(x))
Traceback (most recent call last):
  ...
ValueError: inconsistent assumptions Q.even(x) & Q.odd(x)
sympy.assumptions.ask.register_handler(key, handler)[源代码][源代码]

在询问系统中注册一个处理程序。键必须是一个字符串,处理程序是一个继承自 AskHandler 的类。

自 1.8. 版本弃用: Use multipledispatch handler instead. See Predicate.

sympy.assumptions.ask.remove_handler(key, handler)[源代码][源代码]

从询问系统中移除一个处理器。

自 1.8. 版本弃用: Use multipledispatch handler instead. See Predicate.