该程序忽略else语句

2024-07-03 06:35:31 发布

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

一开始值得注意的是,我是Python的初学者。 我的if语句有问题。我试着写一行,检查玩家是否选择了X或O而不是另一个角色。所以我就用这句话:

if player_x_or_o == 'X' or 'O':
    setplayermove(row_choice, col_choice)
else:
    print('Invalid value, try again.')

但是如果有人使用,例如'S',程序将首先执行if,而不是else。 我不明白为什么,有什么想法吗


# functions


def game_board(X_or_O=0, row=0, column=0, show_gb=False):
    print('     1  2  3')
    if not show_gb:
        game[row][column] = X_or_O
    for index, listof0 in enumerate(game):
        index += 1
        print(index,'.',listof0)

def setplayermove(row, col):
    game[row_choice][col_choice] = player_x_or_o


# Game board

game = [[0,0,0],
        [0,0,0],
        [0,0,0]]

game_board(show_gb=False)

# User input

while True:
    player_x_or_o = str(input('Do you want put "X" or "O"? \n'))
    row_choice = int(input('In which row do you want set your {}? \n'.format(player_x_or_o)))
    col_choice = int(input('In which column do you want set your {}? \n'.format(player_x_or_o)))
    row_choice -= 1
    col_choice -= 1

    if player_x_or_o == 'X' or 'O':
        setplayermove(row_choice, col_choice)
    else:
        print('Invalid value, try again.')



    game_board(show_gb=True)

Tags: orboardgameinputifshowcolumncol
2条回答

第二个条件始终为真,请尝试按以下方式更改条件:

if player_x_or_o == 'X' or player_x_or_o == 'O'

我认为这句话是错误的:

if player_x_or_o == 'X' or 'O':

也许你想写的是:

if player_x_or_o == 'X' or player_x_or_o == 'O':

相关问题 更多 >