【问题标题】:Issue exiting a while loop in Python在 Python 中退出 while 循环的问题
【发布时间】:2022-06-12 10:43:23
【问题描述】:

我正在用 Python 编写一个二十一点程序,我遇到了一个我无法完全理解的 while 循环问题。

如果玩家在前两张牌发完后得到两张等于 21 的牌,我要做的是结束程序。

我可以让程序告诉玩家这是二十一点,并且不会运行其他代码。但是,程序并没有结束。它会一直挂在那里,直到我停止。

以下是代码的相关部分。我的方法是将整个程序设置在一个 while 循环中,并将“游戏结束”设置为 false。如果玩家被发到 21,我希望将“游戏结束”更改为“真”并结束程序。

但是,这不会发生。

这是我正在使用的(我已取出除 10 和 11 之外的所有数字,以便于测试):

game_over = False
while game_over == False:
  deck = [10, 11]
  
  def draw_card():
    card = (random.choice(deck))
    return int(card)
  
  draw_card()
  
  ###First Deal
  dealer_card = int(draw_card())
  player_card = int(draw_card())
  player_card2 = int(draw_card())
  player_total = (player_card + player_card2)
  print(f"The dealer gets: {dealer_card} \n")
  print(f"Your cards are: {player_card} and {player_card2} \nYour total is: {player_total} \n")
  if player_total == 21:
    print("BLACKJACK!")
    game_over = True

感谢您的帮助!

【问题讨论】:

  • 检查您的打印输出中的 player_total 是什么。它可能是一个超过 21的值。所以也许你的if检查应该是>= 21

标签: python


猜你喜欢
  • 2013-05-15
  • 2015-08-15
  • 1970-01-01
  • 2016-08-13
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多