知行编程网知行编程网  2022-10-11 18:30 知行编程网 隐藏边栏  13 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python逻辑运算符及其用法的相关知识,包括逻辑运算符c语言,以及位运算符这些编程知识,希望对大家有参考作用。

Python 逻辑运算符及其用法

逻辑运算符用于操作bool类型的变量、常量或表达式,逻辑运算的返回值也是bool值。

Python 的逻辑运算符有如下三个:

and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。

or:或者,只要两个操作数之一为True,就返回True;否则,返回 False;

not:不是,只需要一个操作数,如果操作数为True,则返回False;如果操作数为 False,则返回 True。

以下代码演示了三个逻辑运算符 AND、OR、NOT 的使用:

# 直接对False求非运算,将返回True
print(not False)
# 5>3返回True,20.0大于10,因此结果返回True
print(5 > 3 and 20.0 > 10)
# 4>=5返回False,"c">"a"返回True。求或后返回True
print(4 >= 5 or "c" > "a")

有些时候,程序需要使用多个逻辑运算符来组合复杂的逻辑。例如,假设想表达如下逻辑:需要购买一套必须以“Python”结尾的教程,且教程价格小于 50 元或该教程是基于“正式版”的。假如使用如下程序:

bookName = "C语言中文网Python"
price = 99
version = "正式版"
if bookName.endswith('Python') and price < 50 or version == "正式版" :
    print("打算购买这套Python教程")
else:
    print("不购买!")

编译运行上面的程序,可以看到程序输出“打算购买这套Python教程”。那么上面的程序有问题吗?

其实问题是存在的,因为程序会先计算 bookName.endswith('Python') 和 price < 50,即使逻辑表达式中的两个条件都是 False,但是只要下面的 version=="正式版”返回True,整个表达式返回True,导致程序仍然输出“打算购买这套Python教程”。因此,即使将上面程序中的bookName改成不以“Python”结尾,程序仍将输出“计划购买此 Python 教程”。

运算结果显然不符合逻辑要求。合乎逻辑的要求是:你需要购买一套名称以“Python”结尾的教程。此时应使用括号以确保程序评估价格 < 50 || version == "official" 在对 bookName.endswith('Python') 的结果求和之前。

因此,应该把程序改为如下形式:

bookName = "C语言中文网Python"
price = 99
version = "正式版"
if bookName.endswith('Python') and (price < 50 or version == "正式版") :
    print("打算购买这套Python教程")
else:
    print("不购买!")

从上面代码可以看出,对于组合逻辑来说,使用圆括号保证运算顺序非常重要。

需要说明的是,即使不是为了保证逻辑运算的顺序,且有括号和没括号的输出结果是一样的,本教程也依然建议使用圆括号来提高程序的可读性。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享