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

Python井字棋:如何判断一行全为X/O?语法问题解惑

Python井字棋行判断问题解析

语法失效原因

你写的('X' or 'O')在Python里的逻辑不是“等于X或者O”,而是逻辑或运算的求值规则:or会返回第一个为“真”的表达式。因为非空字符串在Python里属于真值,所以'X' or 'O'直接返回'X',你的判断就变成了board[1] == board[4] == board[7] == 'X',自然对O完全无效。

单行实现方案

给你几个实用的单行写法:

  • 最直观的写法:先判断三个元素相等,再验证是X或O
    if board[1] == board[4] == board[7] and board[1] in ('X', 'O'):
    
  • 用all()函数批量判断元素一致,适合扩展到更多元素的场景:
    if all(cell == board[1] for cell in board[1::3]) and board[1] in ('X', 'O'):
    
  • 也可以先判断是否为有效棋子,再判断相等(逻辑上更高效,提前排除无效值):
    if board[1] in ('X', 'O') and board[1] == board[4] == board[7]:
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:32:35