我正在制作游戏,但出现错误:“ IndexError:仅整数,切片(:
),省略号(...
),numpy.newaxis(None
),并且整数或布尔数组是有效的索引。”
在下面的代码块中,play_game是一个返回字符串的函数,而roll_dice是一个随机数组。基本上,我正在尝试将所有字符串放入数组,因此进入total_games。但是,由于这个错误,我无法做到这一点,我不确定这到底是什么意思。如果有人能弄清错误的含义或我如何解决此代码,将不胜感激。
def game_session(num_games=50):
total_games = np.zeros(num_games)
for i in total_games:
total_games[i] = play_game(roll_dice())
return total_games
答案 0 :(得分:1)
.zeros
创建一个浮点零数组(0.0
)。
当您执行for i in total_games
时,i
将始终为0.0
,显然由于错误消息提示的原因而无法完成total_games[0.0]
。
我相信您想要的是for i in range(len(total_games))
,它将遍历total_games
的索引,即0、1、2、3,...。
答案 1 :(得分:1)
您无法将字符串输入到类型np.array
的{{1}}中,因为此数据结构仅包含一种类型(默认为np.float64
,如本例所示)。
您追求的是普通的Python np.float64
,请尝试以下代码:
list
@Loocid的答案也是正确的,您的代码存在多个问题。
实际上,您可以(可能应该)像这样使用更多的pythonic:
def game_session(num_games=50):
total_games = []
for _ in range(num_games):
total_games.append(play_game(roll_dice()))
return total_games