python - 中断在我的 if 语句中不起作用

python - Break not working inside my if statement

我刚刚开始学习我的第一语言:python。创建了一个简单的井字游戏。 Break 对第一个玩家工作正常,但对第二个玩家不适用。 如果玩家 2 赢了,它会打印(玩家 2 是赢家),但仍然可以让第一个玩家输入

代码如下:

import random

board = [0,1,2,
         3,4,5,
         6,7,8]

def show():
    print (board[0],'|',board[1],'|',board[2])
    print ('--------')
    print (board[3],'|',board[4],'|',board[5])
    print ('--------')
    print (board[6],'|',board[7],'|',board[8])
    print ('--------')



while True:

    inpt = input('select a spot player 1: ')
    inp = int(inpt)

    if board[inp] != 'x' and board[inp] != 'o':
        board[inp] = 'x'
        if (board[0] == 'x'and board[1] == 'x' and board[2] == 'x')or(board[0] == 'x'and board[3] == 'x' and board[6] == 'x')or(board[6] == 'x'and board[7] == 'x' and board[8] == 'x')or(board[2] == 'x'and board[5] == 'x' and board[8] == 'x')or(board[1] == 'x'and board[4] == 'x' and board[7] == 'x')or(board[3] == 'x'and board[4] == 'x' and board[5] == 'x')or(board[0] == 'x'and board[4] == 'x' and board[8] == 'x')or(board[2] == 'x'and board[4]=='x' and board[6] == 'x'):
            print('player 1 is the winner')
            break
        show()

        space=True                  #finding space

        while space:
            oppt = input('select a spot player 2: ')
            opp = int(oppt)

            if board[opp] != 'o' and board[opp] != 'o':
                board[opp] = 'o'
                if (board[0] == 'o' and board[1] == 'o' and board[2] == 'o')or(board[0] == 'o' and board[3] == 'o' and board[6] == 'o')or(board[6] == 'o' and board[7] == 'o' and board[8] == 'o')or(board[2] == 'o' and board[5] == 'o' and board[8] == 'o')or(board[1] == 'o' and board[4] == 'o' and board[7] == 'o')or(board[3] == 'o' and board[4] == 'o' and board[5] == 'o')or(board[0] == 'o' and board[4] == 'o' and board[8] == 'o')or(board[2] == 'o' and board[4] == 'o' and board[6] == 'o'):
                    print('player 2 is the winner')
                    break
                space = False
            else:
                print('Please check again')
    else:
        print ('PLEASE CHECK AGAIN')


    show()
brk = False
while True:

    inpt = input('select a spot player 1: ')
    inp = int(inpt)

    if board[inp] != 'x' and board[inp] != 'o':
        board[inp] = 'x'
        if (board[0] == 'x'and board[1] == 'x' and board[2] == 'x')or(board[0] == 'x'and board[3] == 'x' and board[6] == 'x')or(board[6] == 'x'and board[7] == 'x' and board[8] == 'x')or(board[2] == 'x'and board[5] == 'x' and board[8] == 'x')or(board[1] == 'x'and board[4] == 'x' and board[7] == 'x')or(board[3] == 'x'and board[4] == 'x' and board[5] == 'x')or(board[0] == 'x'and board[4] == 'x' and board[8] == 'x')or(board[2] == 'x'and board[4]=='x' and board[6] == 'x'):
            print('player 1 is the winner')
            break
        show()

        space=True                  #finding space

        while space:
            oppt = input('select a spot player 2: ')
            opp = int(oppt)

            if board[opp] != 'o' and board[opp] != 'o':
                board[opp] = 'o'
                if (board[0] == 'o' and board[1] == 'o' and board[2] == 'o')or(board[0] == 'o' and board[3] == 'o' and board[6] == 'o')or(board[6] == 'o' and board[7] == 'o' and board[8] == 'o')or(board[2] == 'o' and board[5] == 'o' and board[8] == 'o')or(board[1] == 'o' and board[4] == 'o' and board[7] == 'o')or(board[3] == 'o' and board[4] == 'o' and board[5] == 'o')or(board[0] == 'o' and board[4] == 'o' and board[8] == 'o')or(board[2] == 'o' and board[4] == 'o' and board[6] == 'o'):
                    print('player 2 is the winner')
                    break
                    brk = True
                space = False
            else:
                print('Please check again')
        if brk:
            break
    else:
        print ('PLEASE CHECK AGAIN')

现在它也会跳出循环,因为它会检查在你的第二个 while 循环后 i brk 是否设置为 True,并且当你的 brk 条件满足时 brk 设置为 True