首页 > 解决方案 > 逻辑运算符 OR 内部 for 循环

问题描述

我正在制作一个函数来识别棋盘中是否有两个国王

我使用了 or 运算符,但它不起作用。我使用 if 和 elif “修复”了这个问题,但我不明白为什么它不适用于 or


chessboard = {
"a1":"" ,"a2":"" ,"a3":"" ,"a4":"" ,"a5":"" ,"a6":"" ,"a7":"" ,"a8":"bking" ,
"b1":"" ,"b2":"" ,"b3":"" ,"b4":"" ,"b5":"" ,"b6":"" ,"b7":"" ,"b8":"" ,
"c1":"" ,"c2":"" ,"c3":"" ,"c4":"" ,"c5":"" ,"c6":"" ,"c7":"" ,"c8":"" ,
"d1":"" ,"d2":"" ,"d3":"" ,"d4":"" ,"d5":"" ,"d6":"" ,"d7":"" ,"d8":"" ,
"e1":"" ,"e2":"" ,"e3":"" ,"e4":"" ,"e5":"" ,"e6":"" ,"e7":"" ,"e8":"" ,
"f1":"" ,"f2":"" ,"f3":"" ,"f4":"" ,"f5":"" ,"f6":"" ,"f7":"" ,"f8":"" ,
"g1":"wking" ,"g2":"" ,"g3":"" ,"g4":"" ,"g5":"" ,"g6":"" ,"g7":"" ,"g8":"" ,
"h1":"" ,"h2":"" ,"h3":"" ,"h4":"" ,"h5":"" ,"h6":"" ,"h7":"" ,"h8":"" }



def kingschess(board):
    kings = 0
    print(board.values())
    for a in board.values():
        
        print(a)
        if a == "bking" or "wking":
            print("True")
            kings += 2
        
isValidChessBoard(mychessboard)

标签: python

解决方案


您应该实际使用if a == "bking" or a == "wking":,因为解释器无法推断您正在考虑为两个语句


推荐阅读