擅长:python、mysql、java
<p>主要问题是您没有正确构建函数:</p>
<ol>
<li>建议在函数调用中公开参数。不要<code>def nbhs_1(triple)</code>,改为<code>def nbhs_1(X, Y, Z)</code>。通过这种方式,您实际上可以有一个单独的函数来实现您想要的功能(更易于维护)</li>
<li>返回您的结果。此时,您正在打印函数调用的结果,但没有返回这些结果</李>
<li>我也不确定<code>canonicalize_radical()</code>调用是否正确完成。Python是面向对象的,通过编写<code>var.canonicalize_radical()</code>可以推断<code>var</code>本身应该知道这个函数(例如,该函数是var的一部分),但这听起来是错误的。正确的调用可能是<code>canonicalize_radical(var)</code></li>
</ol>
<p>基本上,这应该更接近正确的解决方案:</p>
<pre class="lang-py prettyprint-override"><code>A=1*sqrt(6)
B=4*sqrt(3)
C=9*sqrt(2)
def nbhs(X, Y, Z):
out1 = canonicalize_radical(X)
out2 = canonicalize_radical(X*Y-Z)
out3 = canonicalize_radical(Y)
return out1, out2, out3
l = [max(nbhs(A, B, C)), max(nbhs(B, A, C)), max(nbhs(C, B, A))]
</code></pre>