擅长:python、mysql、java
<p>你的代码的一个主要问题是你应该先检查平局,否则你就宣布你的球员是赢家。在</p>
<p>对于您的代码,使用<code>if</code>还是<code>elif</code>,实际上并没有什么区别。这是因为<code>message()</code>函数从未实际返回:它要么退出程序,要么递归地调用<code>main()</code>。这不是一个好的设计:任何其他阅读您的代码的人都不会期望一个名为<code>message()</code>的函数来完成这两件事。在</p>
<p>我的建议是创建一个函数来检查游戏是否结束,并返回一个描述结果的字符串。我可以这样做;但是请注意,即使在这里也可以使用<code>if</code>而不是{<cd2>},因为<code>return</code>语句无论如何都会退出函数。在</p>
<pre><code>def check_game_over(total_player, total_dealer):
if total_dealer == 21:
if total_player == 21:
return "Player And Dealer Tie! Game Goes To Dealer"
else:
return "BLACKJACK! Sorry You Lose! Dealer Wins"
elif total_player == 21:
return "BLACKJACK! YOU WIN!"
elif total_player > 21:
return "BUSTED! You Lose"
elif total_dealer > 21:
return "Dealer Busted! You Win!"
else:
return None
</code></pre>