<p><code>check_solution</code>可能不应该是它自己的函数,但是让我们来解决以下问题:</p>
<ul>
<li><p>正如耶尼夫提到的:<code>count =+1</code>是<code>count = +1</code>或<code>count = 1</code>,这显然不是你的意图。</p></li>
<li><p><code>check_solution</code>仅当答案正确时返回计数。您的<code>else</code>还应该返回计数(可能是未修改的)。</p></li>
<li><p>您不会对返回的计数执行任何操作:</p>
<p><code>check_solution(user_solution, solution, count)</code></p>
<p>应该是:</p>
<p><code>count = check_solution(user_solution, solution, count)</code></p></li>
</ul>
<p>因此,要解决当前代码中的问题:</p>
<pre><code>def check_solution(user_solution, solution, count):
if user_solution == solution:
count =+1
print(count)
else:
print("Incorrect")
return count
</code></pre>
<p>请注意,函数中的<code>count</code>变量和您称之为<strong>的<code>count</code>变量是不同的</strong>。您可以更改函数中的名称并得到相同的结果:</p>
<pre><code>def check_solution(user_solution, solution, func_count):
if user_solution == solution:
func_count =+1
print(func_count)
else:
print("Incorrect")
return func_count
</code></pre>
<p>调用它时,必须告诉python将结果放在何处:</p>
<pre><code>if index == 1:
solution = num_1 + num_2
num_1 = str(num_1)
num_2 = str(num_2)
problem = (num_1 + "+" + num_2)
user_solution = get_user_solution(problem)
count = check_solution(user_solution, solution, count)
return count
</code></pre>
<p>如果是我自己写的,我会完全放弃这个函数,使用一个合适的字符串格式化程序:</p>
<pre><code>if index == 1:
solution = num_1 + num_2
problem = "%d+%d" % (num_1, num_2) # or %f if you're using floats
if solution == get_user_solution(problem):
count += 1
print(count)
else:
print("Incorrect")
return count
</code></pre>