二十一点游戏的“ IndexError:列表索引超出范围”

问题描述

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

我正在遇到

Index error: IndexError: list index out of range.

我用4张卡片创建了一个副牌:

deck = [2,3,4,5,6,7,8,9,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)])

如果我正在运行代码,则大多数情况下都可以运行,但是有时会引发名为IndexError

IndexError: list index out of range

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

解决方法

random.randint(a,b)返回一个介于ab之间的整数。它是random.randrange(a,b+1)的别名。因此,请使用random.randint(0,51)random.randrange(0,52)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...