擅长:python、mysql、java
<p>这适用于您的示例(返回<code>-3</code>),并且相信它一般适用于任何劳伦特多项式:</p>
<pre><code>min((z.as_base_exp()[1] for z in expr.atoms(sympy.Pow)), default=1)
</code></pre>
<p>解释:<br/>
从<code>expr</code>中提取原子,这些原子被提升到除1以外的幂。将每个原子转换成<code>(base, exponent)</code>对,丢弃基,并返回最小的指数值。如果<code>expr.atoms(sympy.Pow)</code>为空,则默认为1。
<br/><br/></p>
<hr/>
<p><br/><strong>编辑:<br/>
应该注意的是,<code>atoms(*types)</code>将返回与<code>types</code>匹配的每个</em>原子对象。如果<code>expr</code>是这样的:</p>
<pre><code>x**2 + y + exp(x**(-2)) - 5/y
</code></pre>
<p>结果集将包含<code>x**(-2)</code>,因为它与<code>sympy.Pow</code>匹配,在某些情况下这可能不理想。因为这个问题是关于洛朗多项式的,所以这里不应该有问题。你知道吗</p>