我想循环遍历列表以检查其元素是否与某些东西不相等。代码如下......
def full_board_check(board):
for item in board:
if item != 'X' or item != 'O':
return False
else:
return True
无论通过该函数的列表是什么,它总是输出false。 但是,如果我将if语句更改为仅考虑其中一个条件,则会成功检查该条件。
def full_board_check(board):
for item in board:
if item != 'X':
return False
else:
return True
我在这里缺少什么?
答案 0 :(得分:0)
如果True
中的每个元素都有效,您希望返回item
。你不应该在那里使用or
,你应该使用and
。
与字符串进行比较并使用in
进行成员资格测试会更容易。您也可以使用all
更简洁地完成此操作。
for item in board:
return all(x in 'XO' for x in item)
答案 1 :(得分:0)
你有一个逻辑问题。我建议你学习一些逻辑来完全理解编程中的逻辑语句。没有任何字母可以与X或O不同。如果您评估X,那么该字母与O不同,因此输出为False,而X则相同。在更多数学语言中,您评估的子集是无效的。
如果要评估每个元素不是X或O.
if item == 'X' or item == 'O':
return True
else:
return False
我希望这会有所帮助