擅长:python、mysql、java
<p>你有3个打字错误</p>
<pre><code>a = fatorial(n) # missing letter c
b = fatorial(k) # missing letter c
div = b * fatorial(n-k) // a # missing letter c
</code></pre>
<p>相反,它们应该是:</p>
<pre><code>a = math.factorial(n)
b = math.factorial(k)
div = b * math.factorial(n-k) // a
</code></pre>
<p>在发出这些命令之前,还必须导入数学模块</p>
<pre><code>import math
</code></pre>
<p>按原样,函数<code>fatorial(n)</code>返回一个<code>None</code>类型的对象。下面是一个<a href="https://realpython.com/null-in-python/" rel="nofollow noreferrer">link</a>来解释<code>None</code>类型的对象</p>
<p>进行这些更正后,您将发现另一个问题</p>
<pre><code>div = b * math.factorial(n-k) // a
ValueError: factorial() not defined for negative values
</code></pre>
<p>这是因为<a href="https://docs.python.org/3.6/library/math.html?highlight=factorial#math.factorial" rel="nofollow noreferrer">math.factorial</a>不能处理负数,即<code>3-4 = -1</code></p>