Python3学习笔记:逻辑运算中的AND, OR 旧城等待, 2022-05-22 04:06 202阅读 0赞 Python3中的逻辑运算,跟其它语言的逻辑运算存在差别。 当运算数据皆为布尔类型时,逻辑运算思路相同。例如 if __name__ == '__main__': print("true and true =", True and True) print("true and false =", True and False) print("false and true =", False and True) print("false and false =", False and False) print("true or true =", True or True) print("true or false =", True or False) print("false or true =", False or True) print("false or false =", False or False) 输出为 true and true = True true and false = False false and true = False false and false = False true or true = True true or false = True false or true = True false or false = False 但当运算数据中存在非布尔类型时,思路就不同了。例如 if __name__ == '__main__': print("5 and true =", 5 and True) print("true and 5 =", True and 5) print("false and 5 =", False and 5) print("5 and false =", 5 and False) print("5 or true =", 5 or True) print("true or 5 =", True or 5) print("false or 5 =", False or 5) print("5 or false =", 5 or False) 输出结果为 5 and true = True true and 5 = 5 false and 5 = False 5 and false = False 5 or true = 5 true or 5 = True false or 5 = 5 5 or false = 5 现对思路总结如下: (1)对于AND,若运算数据中存在False,则为False;否则,返回最右端数据。 (2)对于OR,若运算数据中存在False,则返回剩余数据;否则,返回最左端数据。 那问题来了,如果运算数据都不为布尔类型呢? if __name__ == '__main__': print("5 or 6 =", 5 or 6) print("5 and 6 =", 5 and 6) 上面的思路,同样适用,结果如下: 5 or 6 = 5 5 and 6 = 6 再来看更复杂的情况。 if __name__ == '__main__': print("5 or 6 and 7=", 5 or 6 and 7) print("5 and 6 or 7=", 5 and 6 or 7) print("5 or 6 or 7=", 5 or 6 or 7) print("5 and 6 and 7=", 5 and 6 and 7) 这里需要强调的是,在Python中,AND的优先级高于OR,因此,我们再按照之前的总结(需要进行简单的嵌套),可以推算出结果, 5 or 6 and 7= 5 5 and 6 or 7= 6 5 or 6 or 7= 5 5 and 6 and 7= 7 其它复杂情况,可依此类推。
还没有评论,来说两句吧...