<p>一开始值得注意的是,我是Python的初学者。
我的<code>if</code>语句有问题。我试着写一行,检查玩家是否选择了X或O而不是另一个角色。所以我就用这句话:</p>
<pre><code>if player_x_or_o == 'X' or 'O':
setplayermove(row_choice, col_choice)
else:
print('Invalid value, try again.')
</code></pre>
<p>但是如果有人使用,例如'S',程序将首先执行<code>if</code>,而不是<code>else</code>。
我不明白为什么,有什么想法吗</p>
<hr/>
<pre><code># 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)
</code></pre>