Python:如何检查列表中的每个字符是否不是''?

时间:2019-02-20 17:01:15

标签: python

我正在Python中构建一个简单的井字游戏。

我有一个包含10个空格的列表,我用XO替换了每个行。我希望它能够告诉董事会什么时候满员,而且没有赢家。我已经列出了所有获胜的可能性,这是我尝试使它检查是否有平局的尝试。

for char in begin_board[1:10]: if char != ' ': print("It's a draw!")

这是错误的,因为它仅检查1中的9是否不是空格。我希望它检查并仅在所有9不是空格的情况下返回打印。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以通过检查列表not in中的空字符串来检查是否定的。

if ' ' not in board:
     # Board is full.

如果将''用于空平方值,则也可以使用all()来检查所有值是否都是True。空字符串在Python中已经具有False值,而其他任何字符串都是True,因此您可以直接测试开发板。

>>> board = ['x', 'x', '']
>>> all(board)
False

>>> board = ['x', 'x', 'o']
>>> all(board)

您将其用作

if all(board):
    # Board is full.

答案 1 :(得分:0)

首先,begin_board[1:10]仅列出第二至第九。如果这是您要采取的行为,那么这很好,否则,如果您想要所有元素,那么只需在begin_board中为i进行操作,它将列出从第一到第十的所有元素

如果我们要使用自己的代码,则可以通过使用isDraw标志并检查是否还有空白空间来完成此操作。

for i in begin_board:
    if char==' ':
        isDraw = False
if (isDraw):
    print("It's a draw!")

但是,更好的方法是计算列表中有多少空格。

if (begin_board.count(' ') == 0):
    print("It's a draw")

另一种方法是简单地检查板上是否存在空间。

if ' ' not in begin_board:
    print("It's a draw")