Python 3.x 试图找出我的代码有什么问题

Python 3.x 试图找出我的代码有什么问题,python-3.x,Python 3.x,在这里,我试图开发一个游戏 如果Board值发生变化,请解释为什么变量win的布尔值不更新 这是密码 Board={'1':'1','2':'6','3':'7', '4':'2','5':'5','6':'8', '7':'3','8':'4','9':'9'} [两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两

在这里,我试图开发一个游戏

如果
Board
值发生变化,请解释为什么变量
win
的布尔值不更新

这是密码

Board={'1':'1','2':'6','3':'7',
'4':'2','5':'5','6':'8',
'7':'3','8':'4','9':'9'}
[两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两两
转角='X'
打印(Win)
对于范围(9)内的i:
a=str(输入('Enter choice{}:'.format(turn)))
板[a]=转弯
如果转角='X'或'X'则转角='Y'
if Win:#我希望Win是真的,但实际上是假的
打印('Win')

请帮我解决这个问题。

您有一个静态布尔值,在“玩游戏”时未修改

相反,定义一个检查电路板状态的函数

def isWin(board):
    return board['1'] == board['2']== board['3']=='X' or ... 
然后在游戏循环中使用它

Board[a] = turn
turn = 'Y' if turn == 'X' else 'X' 
if isWin(Board):
    ... 
    break  # stop the game

您需要在循环中再次声明
Win
。您只需在开始时设置一次
Win
的值。否,它不会根据
板中的更改进行更新。在
发生更改后,您需要再次显式地为
Win
分配一个新值。您能解释一下为什么varibale Win不会更新吗?因为这是强制性编程。当你告诉电脑的时候,电脑会完全按照你告诉它的去做
Win=…
计算该赋值的右侧,并将其结果赋值给
Win
。之后不会隐式地对其进行重新评估。这不是数学符号,
=
建立关系。还有其他语言可以做这种事情,但不是命令式语言。你能解释一下为什么“Board”变量没有在函数之外更新吗?你最初的问题没有函数。我的答案从来不会修改isWin函数中的字典,所以我不确定我是否理解这个问题。