python27-Python的运算符之逻辑运算符

本文详细介绍了Python中的逻辑运算符(and,or,not)以及它们在条件语句中的应用。特别强调了在复杂逻辑表达中使用括号调整运算顺序的重要性,以确保程序按预期执行。
部署运行你感兴趣的模型镜像

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

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

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

or:或,只要两个操作数中有一个是True,就可以返回True:否则返回False。

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

下面代码示范了与、或、非这三个逻辑运算符的使用

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

#直接对False求非运算,将返回True

print(not False)

#6>5 返回True,7.0大于3,因此结果返回True

print(6>5 and 7.0>3)

#3>=7返回False,"b">"a" 返回True,因此或后的结果返回True

print(3>=7 or "b">"a")

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

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

bookName ="由浅入深学习python"

price = 100

version ="正版"

if bookName.endswith('python') and price<50 or version =='正版':

print("考虑买下这本书")

else:

print("不买了")

编译、运行上面程序,可以看到程序输出“考虑买下这本书”。那么上面程序是否有问题呢?

其实问题是存在的,这是因为程序会先计算bookName.endswith('python') and price<50即使该逻辑表达式中的两个条件都是False,但只要后面的version =="正版"返回True,整个表达式就会返回 True,从而导致程序依然会输出“考虑买下这本书”。

因此,即使把上面程序中的bookName改为不以“Python”结尾程序也依然会输出“打算购买这本Python图书”运算结果显然与逻辑需求并不一致,逻辑需求是:需要购买一本书名以“Python”结尾的图书。此时应该使用圆括号来保证程序先对 price<50 version=="正式版"求值,然后再与ookNameendswith(Python)的结果求与。

# !/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2024/01

# @Author : Laopi

bookName ="由浅入深学习python"

price = 100

version ="正版"

if bookName.endswith('python') and price<50 or version =='正版':

print("考虑下买这本书")

else:

print("不买了")



if bookName.endswith('python') and (price<50 or version =='正版'):

print("考虑下买这本书")

else:

print("不买了")

从上面代码可以看出,对于组合逻辑来说,使用圆括号保证运算顺序非常重要。需要说明的是,即使不是为了保证逻辑运算的顺序,且有括号和没括号的输出结果是一样的,本书也依然建议使用圆括号来提高程序的可读性。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试老痞

你的支持,是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值