python中and、or和not 三个逻辑运算符,一直理解不了,求帮助! Python3逻辑运算符not?

作者&投稿:大叔媛 (若有异议请与网页底部的电邮联系)

‘and’、‘or’和‘not’的优先级是not>and>or



简单解释就是:
and -> A and B -> 表示A和B都必须同时满足才可以
or -> A or B -> 表示A或B,两者满足一个,其中任意一个,就可以了
not A -> 对于A取反 -> A原来是真,则现在是假;A原来是假,则现在是真。

这些,其实和Python关系不大,和你对于基本的,编程语言中的逻辑,不理解有关系。
很多语言,都是这个逻辑的。也本身是符合人类的逻辑的。

感兴趣的,自己去看:
【教程】Python开发入门详解

(此处不给贴地址,请用google搜标题,即可找到地址的)

0 and 1 结果为0;3 and 4结果为4;其实本质都是两者都为1时结果才为1,python中除0之外所有正整数在逻辑运算符的时候都可以理解为1,and需要确定两者是否均为1时才输出结果,否则则输出0,3 and 4中,到4的时候确定了两者均为1,所以输出了结果4。or则是出现1结果则为1,0 or 1为1,1 or 0也为1,3 or 4为3,因为3可以理解为1,已经确定了则输出结果3。not 1为false,not 0为true,not 3为false。这样能够理解了吧。希望能够帮到被这个问题困惑的人。

77、 表达式 3 or 5 的值为__(3) 真或真返回第一个真,真或真返真
78、 表达式 0 or 5 的值为___(5) 假或真返真
79、 表达式 3 and 5 的值为__。(5) 真且真返真,返回第二个真。
#and, or:
# 判断变量是否为0, 是0则为False,非0判断为True,

# and中含0,返回0; 均为非0时,返回后一个值,两个1返回第二个1(两个真返回第二个真),其余返回第一个非0
a=(2 and 0) # 返回0
b=(2 and 1) # 返回1
c=(1 and 2) # 返回2
#1且1返1,1且0返0,0且1返1
print(a)
print(b)
print(c)

# or中, 至少有一个非0时,返回第一个非0,
d=(2 or 0) # 返回2
c=(2 or 1) # 返回2
e=(0 or 1) # 返回1
f=(0 or 0) # 返回0,重点记住,or只有 0 or 0 才返回0,两个0返回第二个0(两个假返回第二假),其余返回第一个非0
#1或1返1,1或0返1,0或1返1
print(d)
print(c)
print(e)
print(f)
Python 中,
or 可以理解为找真值演算,从左到右发现真值就返回真值;
如果两个都是假值,那就返回最后一个假值。

and 可以理解为找假值演算,从左到右发现假值就返回假值;
如果两个都是真值,那就返回最后一个真值。

演算规则简单归纳一下就是:

or :找真值:
如果有一个值为真,or 立刻返回第一个真值;
如果所有值都为假,or 返回最后一个假值。

and :找假值:
如果有一个值为假,and 立刻返回第一个假值;
如果所有值都为真,and 返回最后一个真值。
(or或假,假装疑惑,A和B同时是假时才是假。and且行且珍惜,A且B为真时才是真。)(or或假,两个为假时,返回最后一个假值。and且行且珍惜,两个为真时,返回最后一个真值。都是返回最后一个)(假或假才是假,真且真才是真)
(0代表假False,其他数字代表真True)

python逻辑运算符有哪些~

逻辑运算符用于组合多个条件测试语句。假设“我今年18岁”和“我身高2米”这两个语句,前一个语句是真的,后一个语句是假的,因此,“我今年18岁,并且我身高2米”这个语句是假的。其中,“并且”可以认为是逻辑运算符。Python中有三种逻辑运算符,分别是and、or和not。
一、逻辑运算符and
在某些场景下,需要同时检查两个甚至更多的条件。假设某运动队招收运动员的要求是年龄不得低于14周岁,同时身体健康,使用逻辑运算符and来判断是否符合要求:

使用逻辑运算符and连接的两个布尔表达式的值必须都为True,返回值才为True;如果其中一个布尔表达式的值为False或两个布尔表达式的值都为False,那么返回值为False。假设另一个报名的运动员今年13岁,身体健康,那么他不符合要求:

“符合条件”并不会被打印出来。
同样,如果年龄和健康都不符合要求,也不会打印“符合条件”:

二、逻辑运算符or
逻辑运算符or也可以同时检查两个甚至更多的条件,与and不同的是,只要其中一个布尔表达式的值为True,返回值就为True。假设某一项考试分两场,均为60分及格,只要有一场及格,考试就算通过,使用逻辑运算符or来判断是否通过考试:

使用逻辑运算符or连接的两个布尔表达式的值必须都为False,返回值才为False。假设另一个人第一场考试得了59分,第二场考试得了58分,那么他没有通过考试:

三、逻辑运算符not
逻辑运算符not用于对一个布尔表达式取反,即原本返回值为True的表达式,使用not运算符后则返回False;而原本返回值为False的表达式,使用not运算符后则返回True。假设某个游乐园区要求年龄不低于18岁的游客才能进入,使用逻辑运算符not来判断是否可以进入:

逻辑运算符不仅可以单独使用,也可以混合使用。假设为了鼓励小明好好学习,他的家中设置了家庭奖学金,如果每次考试小明的数学成绩达到95分并且语文成绩达到85分,或者数学成绩达到85分并且语文成绩达到90分,那么可以获得家庭奖学金:

在布尔表达式“(math >= 95 and chinese > 85) or (math >= 85 and chinese > 90)”中,使用or运算符连接的两个布尔表达式“math >= 95 and chinese > 85”和“math >= 85 and chinese > 90”只要有一个值为True,返回值就为True。而对于布尔表达式“math >= 95 and chinese > 85”和“math >= 85 and chinese > 90”,都是使用and运算符连接的,故and运算符连接的两个布尔表达式的值必须都为True,返回值才为True。小明的数学成绩是98分,语文成绩是88分,布尔表达式“math >= 95 and chinese > 85”的值为True,“math >= 85 and chinese > 90”的值为False,因此,整个布尔表达式的值为True,打印“小明获得家庭奖学金!”。
关于深度学习的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。

在python中,逻辑运算符的优先级是逻辑运算符: or< and <not,所以在你的第一个问题print(1 and 2 or 3 and 4 and 6 and 7 or 8 not 9)中,优先计算not 9后发现8和false没有任何运算符连接,故会报错。此外,对于数字的运算,and取后而or取前,所以根据运算顺序可以得知print( not 1 and 2 or 3 and 4 and 6 and 7 or 8)即为print( False or 7 or 8),得到结果7.
对于数字反复运用逻辑运算符一般是没有意义的。望采纳

python里12|8等于8怎么计算的?
答:你看,本例中 and 和 or 运算符操作的都不是 bool 类型表达式,操作的结果也不是 bool 值。逻辑运算符的本质 在 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者...

No可以作为python的变量名吗?
答:当然可以。python变量名必须以字母、下画线(_)开头,后面可以跟任意数目的字母、数字和下画线(_)。此处的字母并不局限于 26 个英文字母,可以包含中文字符、日文字符等。

python数据类型有哪些
答:int,标准整型,在大多数32位机器上标准整型取值范围是-2^31到2^31-1,也就是-2147483648~2147483647,如果在64位机器使用64位编译器,那么这个系统的标准整型将是64位。3、布尔型 bool,从Python2.3开始Python中添加了布尔类型。布尔类型有两种True和False。对于没有__nozero__方法的对象默认是True。

Python问题 第一题 请编写程序输出奇偶数月份。 原题为educoder上控制程 ...
答:else :print("no")你的变量a没被赋予month的值,所以用month 不用a 刚才填了个行尾 : 亲测可运行。你还可以更严谨一点儿 比如month >=1 and month <=7 或 month>=8 and month<=12之类 比如:if (month>=1 and month<=7 and month%2!=0) or (month>=8 and month<=12 and month...

Pycharm,显示no,Python at…怎么办?
答:出现这个问题的原因目前知道的有两个:1、本地环境中没有安装Python,或者远程设置也没有;2、安装的pycharm的版本和你当前Python的版本不匹配也会出现这个问题;

python 定义函数
答:params 就是(5, 5)(5,) * 2 ,就是2个5的元组,乘号可以理解成相加。"*" * 30就是30个“*"的字符串 params作为参数,前面的*号就是把params元组分解成元素的意思,这样就分开成为2个参数了。实际上传递给了x,y 于是就执行了power(5,5)...

PHP开发人员的Python基础知识
答:Python 变量名是区分大小写的,并且您不能使用特定的 Python 关键字(比如 if、else、while、def、or、and、not、in 和 is 开始符)作为变量名。这没有什么值得奇怪的。 Python 允许您随意执行基于字符串的操作。清单 6 中的大多数操作应该都是您熟悉的。 清单6. 常见的基于字符串的操作 yorkie = 'Marlowe' ...

python中**是啥什么意思?
答:Python中的//是向下取整的意思。a//b,应该是对除以b的结果向负无穷方向取整后的数5//2=2(2.5向负无穷方向取整为2),同时-5//2=-3(-2.5向负无穷方向取整为-3)/与//的区别在Python中/表示浮点整除法,返回浮点结果,也就是结果为浮点数;而//在Python中表示整数除法,返回大于结果的一个...

Python代码调试的几种方法总结
答:清单9. 在调试的时候动态改变值[root@rcc-pok-idg-2255 ~]# python epdb2.py > /root/epdb2.py(10)?() -> b = "bbb" (Pdb) var = "1234" (Pdb) b = "avfe" *** The specified object '= "avfe"' is not a function or was not found along sys.path. (Pdb) !b="afdfd"...

后端编程Python3-数据库编程
答:对大多数软件开发者而言,术语数据库通常是指RDBMS(关系数据库管理系统), 这些系统使用表格(类似于电子表格的网格),其中行表示记录,列表示记录的字段。表格及其中存放的数据是使用SQL (结构化査询语言)编写的语句来创建并操纵的。Python提供了用于操纵SQL数据库的API(应用程序接口),通常与作为标准的SQLite 3数据库一...