【问题标题】:"IndexError: list index out of range" for blackjack game二十一点游戏的“IndexError:列表索引超出范围”
【发布时间】:2020-12-18 23:26:08
【问题描述】:

我已经学习了 Python 基础知识,目前正在尝试编写我的第一个 Python 小项目:一个基本的二十一点游戏。

我现在遇到了

Index error: IndexError: list index out of range.

我创建了一个包含 4 组卡片的套牌:

deck = [2,3,4,5,6,7,8,9,10,10,10,10,11] * 4 

我正在使用dealing_cards 函数处理卡片:

def dealing_cards():
    """Dealing cards"""
player_cards.append(deck[random.randint(0, 52)])
player_cards.append(deck[random.randint(0, 52)])
dealer_cards.append(deck[random.randint(0, 52)])
dealer_cards.append(deck[random.randint(0, 52)])

如果我正在运行代码,它大部分都可以工作,但有时它会引发名为IndexError

IndexError: list index out of range

我不明白为什么,因为我没有从套牌列表中弹出号码。卡片保持在其索引处,sum(deck) 始终保持在 52。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请使用tour 并阅读How to Ask。特别是,请不要使用不必要的首字母缩略词,除非它们非常常见。很少有人会知道您指的是“BJ”中的“二十一点”
  • random.randint(a, b) 生成ab 的随机整数包含。长度为 52 的列表可以拥有的最高索引是 51

标签: python list blackjack


【解决方案1】:

random.randint(a, b) 返回ab 范围内的整数,包括端点。它是random.randrange(a, b+1) 的别名。所以要么使用random.randint(0, 51),要么使用random.randrange(0, 52)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2011-10-31
    • 2015-06-26
    相关资源
    最近更新 更多