为什么只有在使用input()方法时才会出现TypeError?

2024-03-28 23:44:22 发布

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

我正在做一个井字游戏的两个功能。“board”是一个列表,用户使用numpad放置他或她的标记。这个数字是“董事会”名单的索引。你知道吗

第一个功能-检查棋盘上是否有可供播放的空间 并返回一个布尔值(如果有空格,则返回True)。你知道吗

第二个函数-从用户放置标记的位置获取输入,然后使用第一个函数检查是否是自由位置

board = ['#','X','O','X',' ','X','O','X','O','X']

def space_check(board, position):

     return board[position] == ' '

我测试它-

space_check(board, 4)

>True


def player_choice(board):

     position = input("Player's next move")

     if space_check(board, position) == True:

          return position

错误:

TypeError: list indices must be integers or slices, not str

我是新来的,如果这是一个混乱道歉。我非常感谢你的帮助。你知道吗


Tags: 函数用户标记功能boardtrue游戏列表
2条回答

python中的input()函数默认情况下以str形式返回用户输入。你知道吗

因为这是一个字符串-您无法访问列表-因此TypeError

这可以通过将input()语句转换为int来解决,如下所示:

position = int(input("Player's next move"))

现在,如果你尝试这个,它应该工作的预期!你知道吗

:)

输入的默认返回值是str类型

改变

position = input("Player's next move")

position = int(input("Player's next move"))

相关问题 更多 >