繁体   English   中英

我的条件有什么问题?

[英]What's wrong with my conditional?

我有这个代码:

    listOfColumns = ["A", "B", "C", "D", "E", "F", "G", "H"]
    validChoice = False
    if color1 == "White":
        piece = raw_input(self.Player1["Name"] + ", pick a piece to move. Enter the coordinates (ex. A3, D4, etc.)." + "\n")
        while validChoice == False:
            column = self.position_to_xCoor(piece)
            row = self.position_to_yCoor(piece)
            piece1 = self.Chessboard.Matrix[row][column].Piece
            print piece1.Color
            print color1
            if str(piece[0]) != any(self.listOfColumns) or int(piece[1]) > 8 or piece1.Color != color1:
                piece = raw_input("That is not a valid choice. Pick again." + "\n")
            else:
                validChoice = True

其中 Chessboard 是另一个具有属性 Piece 的类的对象,该类具有属性颜色。 用户需要输入坐标(即 A2、B3、D7)。 但是为什么我一直得到这个结果? 我以为我所有的条件都满足了。

White
White
That is not a valid choice. Pick again.

这不是any()工作方式。 any()的结果是TrueFalse ,而某个东西的str()将返回一个字符串,而不是一个布尔值。 您需要in运算符:

if str(piece[0]) not in self.listOfColumns or...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM