CodeAcademy战舰7/19 python课程

2024-04-23 13:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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)?在


Tags: boardlenreturndefcolrandomrowrandint
2条回答

random模块有两个函数,它们生成给定范围的随机整数。在

  1. randint(A, B),返回整数X,例如A<;=X<;=B
  2. randrange(A, B),返回一个整数X,例如A<;=X<;B。这与range函数的工作方式非常相似

主要区别在于第一个区域是封闭的,而第二个区域是从右侧打开的。在

在您的示例中,randint(0, len(board))可能会返回len(board),而len(board)又会引发一个IndexError,因为数组中元素的索引在0 <= i < len(board)

您可以使用randrange(len(board)),它更简洁。在

在Python中,数组从索引0开始。所以数组中的最后一个项目的索引1小于数组的长度。在

例如,如果数组有三个项,则有项[0],项[1]。和第[2]项。如果你尝试了第[3]项,你会得到一个异常,因为没有这样的对象。在

相关问题 更多 >