python - 逻辑运算符 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)
解决方案
您应该实际使用if a == "bking" or a == "wking":
,因为解释器无法推断您正在考虑为两个语句
推荐阅读
- java - 如何通过读取java中的路径来更新json的值?
- deep-learning - 使用图像中的多个对象训练 Faster R-CNN
- php - 如何通过读取单元格中的文本来使用 phpExcel 更改特定文本的颜色?
- adaptive-cards - 具有 Luis 意图的自适应卡片
- ios - 具有自定义非对称可点击区域的 UIButton?
- django - django rest框架的mongoengine连接connectionerror
- javascript - 当角度 6 出现任何错误时如何显示错误分量?
- r - 如果序列 <= 3 保留某些信息,则将所有值解码为零
- scrapy - 初学者帮助 - 抓取电子商务网站
- python - 哪些版本的 python、anaconda 和 tensorflow 最适合在 Windows 8.1 上组合使用?