You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:列表遍历判断循环为何始终返回True

问题原因

你的代码逻辑写反了:

  • 现有逻辑是遍历索引1到9的元素时,只要碰到任意一个值为X或O的元素,就立刻执行return True终止函数,不会继续检查剩下的元素。只要列表里存在至少一个X/O,返回结果就永远是True,和其他位置的元素值无关,这就是你改了元素结果也不变的原因。
  • 从函数名full_board_check和你用的棋盘格式来看,你实际要实现的逻辑应该是:检查1-9位的所有棋盘格都被X/O填满(没有空位、没有其他字符),满足条件返回True,只要有一个位置不符合就返回False。
修正方案

把判断条件反过来:遍历过程中只要发现任意位置的元素不是X/O,立刻返回False;等所有元素都遍历完成、确认没有不符合要求的值之后,再返回True。
修正后的代码如下:

test_board = ['#', 'X', 'L', 'X', 'O', 'X', 'O', 'X', 'O', 'X']

def full_board_check(board):
    for i in range(1,10):
        if board[i] not in ["X","O"]:
            return False
    return True

用你现在的测试列表运行,因为索引2位置是L,函数会返回False;把L替换成X或O之后,所有检查位都是合规值,函数才会返回True,符合预期。

内容的提问来源于stack exchange,提问作者shivam tuli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:01:00