Python3井字棋游戏报错:IndexError: tuple index out of range 求助
嘿,我来帮你搞定这个IndexError的问题!
为什么会报错?
你直接把列表传给str.format()的时候,Python会把整个列表当成一个单独的参数(也就是位置0的参数)。但你的格式字符串里写了{1}、{2}一直到{9},这些是在找第1到第9个位置参数——可你只传了一个参数(那个列表),自然找不到对应的索引,就抛出“tuple index out of range”啦。
怎么解决?
只需要在列表前面加个星号*,把列表“解包”成一个个单独的位置参数,这样{1}就对应列表的第1个元素(索引1),{2}对应索引2,完全匹配你的格式字符串需求。
修改后的完整代码
emptyboard = """ {1} | {2} | {3} ____|_____|____ {4} | {5} | {6} ____|_____|____ {7} | {8} | {9} | | """ # 用*解包列表,让每个元素成为独立的format参数 print(emptyboard.format(*["#","X","O","O","O","O","X","X","X","X"]))
我还帮你调整了空棋盘的换行,这样打印出来的井字棋格式会更清晰,不会挤成一团~
内容的提问来源于stack exchange,提问作者Monty Marti
相关产品推荐
相关产品推荐

