列表类型错误的未知原因

2024-09-30 16:29:37 发布

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

def player_move(Player, board):
    playerMarker = None
    print("Player ",Player," it is your turn!")
    playerChoice = input("Please input your move: ")
    if Player == 1:
        playerMarker == 9
    else:
        playerMarker == 10
    board[playerChoice] == playerMarker

这会产生类型错误:

line 36, in player_move
board[playerChoice] == playerMarker
TypeError: list indices must be integers or slices, not str

为什么会这样,我怎样才能阻止它发生?我知道str不能添加到此列表中,但我不是在尝试添加整数吗


Tags: boardnoneinputyourmoveisdefit
1条回答
网友
1楼 · 发布于 2024-09-30 16:29:37

有两个问题:假设playerChoice是一个整数(它是一个字符串,必须使用int().*进行转换),并且使用==进行赋值。这是固定的:

def player_move(Player, board):
    playerMarker = None
    print("Player ",Player," it is your turn!")
    # should probably check for invalid inputs here
    playerChoice = int(input("Please input your move: "))
    if Player == 1:
        playerMarker = 9
    else:
        playerMarker = 10
    board[playerChoice] = playerMarker

*您可能会对来自Python 2感到困惑,其中input确实(偶尔)返回一个整数;Python 3的input≙ Python 2的raw_input

相关问题 更多 >