<p>这条生产线有两大问题:</p>
<pre><code>if selected_bag == A or B or C:
</code></pre>
<p>正如aikid已经解释过的,第一个问题是<code>or</code>不是那样工作的;您需要<code>in</code>。在</p>
<hr/>
<p>第二个问题是要检查用户是否输入了字符串<code>"A"</code>、<code>"B"</code>和{<cd5>},而不是检查他是否输入了<code>A</code>、<code>B</code>和<code>C</code>变量的值。在</p>
<p>所以,你想要的是:</p>
^{pr2}$
<hr/>
<p>您再次重复这两个问题,并需要再次修复它们:</p>
<pre><code>elif removed == 1 or 2 or 3 or 4 or 5:
</code></pre>
<p>…需要</p>
<pre><code>elif removed in (1, 2, 3, 4, 5):
</code></pre>
<p>…或者更好</p>
<pre><code>elif 1 <= removed <= 5:
</code></pre>
<p>然后,在这里面:</p>
<pre><code> if selected_bag == A:
A-=removed
</code></pre>
<p>…需要</p>
<pre><code> if selected_bag == "A":
A-=removed
</code></pre>
<p>…B和C也是一样的</p>
<hr/>
<p>最后,本部分:</p>
<pre><code>if removed>5 or removed<1:
int(input("You must enter between 1 and 5:"))
</code></pre>
<p>…什么都没用。它要求用户输入另一个数字,将结果转换为<code>int</code>,然后忽略它并落到<code>if A>0:</code>部分。如果你想一直问直到用户给出有效答案,你需要某种循环。当然,你必须把这个值存储在某个地方,这样它才会有用。例如:</p>
<pre><code>removed=int(input("How many objects do you want to remove?"))
while removed>5 or removed<1:
removed = int(input("You must enter between 1 and 5:"))
</code></pre>
<p>您在<code>selected_bag</code>输入部分也有一个非常类似的错误。在</p>
<hr/>
<p>如果你想处理两个玩家,你需要跟踪当前轮到谁了。一种简单的方法是存储一个<code>current_player</code>变量,并通过循环每次更新它。例如:</p>
<pre><code>current_player = 2
while total_objects>0:
current_player = 2 if current_player == 1 else 1
print("Player", current_player, " is now up.")
# all the existing code
print('Player", current_player, "wins!")
</code></pre>
<p>如果你想“掷硬币”来决定谁先走,你只需将第一行改为:</p>
<pre><code>import random
current_player = random.choice((1, 2))
</code></pre>