元组索引的范围?

时间:2018-10-25 14:50:18

标签: python

当我尝试构建井字游戏时,我想测试我的显示板功能。它不断给我“元组索引超出范围”的错误,因此我将其更改为最简单的形式,我只是在格式方法中放置了一个列表:

print(' {7} | {8} | {9} \n ------------ \n {4} | {5} | {6} \n ----------- \n {1} | {2} | {3} '.format(['#','X','O','X','O','X','O','X','O','X']))

该列表包含10个元素。而且我看不到元组,我是python的初学者,而我目前正为此苦苦挣扎。

4 个答案:

答案 0 :(得分:0)

.format可以不使用列表。

print(' {7} | {8} | {9} \n ------------ \n {4} | {5} | {6} \n ----------- \n {1} | {2} | {3} '.format(
        '#', 'X', 'O', 'X', 'O', 'X', 'O', 'X', 'O', 'X'))

答案 1 :(得分:0)

.format需要单独的参数,而不是可迭代的参数。您需要使用*运算符将列表解压缩为单独的args。

print(' {7} ...'.format(*['#','X','O','X','O','X','O','X','O','X']))
#                       ^ here

答案 2 :(得分:0)

当前,您为format提供了一个参数-包含10个元素的列表。

通过解压缩列表或完全不使用列表来给format十个参数。

带包装:

>>> print(' {7} | {8} | {9} \n ------------ \n {4} | {5} | {6} \n ----------- \n {1} | {2} | {3} '.format(*['#','X','O','X','O','X','O','X','O','X']))
 X | O | X 
 ------------ 
 O | X | O 
 ----------- 
 X | O | X 

不带包装:

>>> print(' {7} | {8} | {9} \n ------------ \n {4} | {5} | {6} \n ----------- \n {1} | {2} | {3} '.format('#','X','O','X','O','X','O','X','O','X'))
 X | O | X 
 ------------ 
 O | X | O 
 ----------- 
 X | O | X 

答案 3 :(得分:0)

您正在将一个参数传递给format。删除列表[ ]以传递十个参数。

或者您可以使用*解包运算符将一个可迭代序列解包为多个参数。

print(
  ' {7} | {8} | {9} \n'
  '-----------\n'
  ' {4} | {5} | {6} \n'
  '-----------\n'
  ' {1} | {2} | {3} '.format(*'#XOXOXOXOX')
)