def random_row(board):
return randint(0 , len(board) - 1)
def random_col(board):
return randint(0, len(board)-1)
我的问题是为什么(len(board) - 1)而不是len(board)?
答案 0 :(得分:3)
random模块有两个函数,在给定范围的情况下生成随机整数。
主要区别在于第一个范围是关闭的,而第二个范围是从右边打开的。
在您的示例中,randint(0, len(board))
可能会返回len(board),这会引发IndexError
,因为数组中的元素索引位于0 <= i < len(board)
您可以使用更简洁的randrange(len(board))
。
答案 1 :(得分:2)
在Python中,数组从索引0开始。因此数组中的最后一项将有一个小于数组长度的索引。
例如,如果数组有三个项目,则您有项目[0],项目[1]。和项目[2]。如果您尝试了第[3]项,那么就会因为没有这样的对象而获得异常。