Python中 and,or 的计算规则
一.纯 and 和 or 语句
1. 在纯and语句中,如果每一个表达式都不是假的话,那么返回最后一个,因为需要一直匹配直到最后一个。如果有一个是假,那么返回假
2. 在纯or语句中,只要有一个表达式不是假的话,那么就返回这个表达式的值。只有所有都是假,才返回假
3. 在or和and语句比较难表达,总而言之,碰到and就往后匹配,碰到or如果or左边的为真,那么就返回or左边的那个值,如果or左边为假,继续匹配or右边的参数。
(False or 1) 输出1 (1 or False) 输出1 (True or 1)输出前者 (1 or True) 输出前者 (True and 1) 输出后者 (1 and True) 输出后者 (False and 1)输出False (1 and False) 输出False
二.对Python而言
其一, 在不加括号时候, and优先级大于or
其二, x or y 的值只可能是x或y. x为真就是x, x为假就是y
第三, x and y 的值只可能是x或y. x为真就是y, x为假就是x
显然
对于, 1 or 5 and 4: 先算5 and 4, 5为真, 值为4. 再算1 or 4, 1 为真,值为1 对于, (1 or 5) and 4: 先算1 or 5, 1为真, 值为1. 再算1 and 4, 1为真,值为4
这是什么,这是什么,这是知识点,对,只是一个知识点!
在Python中,空字符串为假,非空字符串为真。非零的数为真。
数字和字符串之间、字符串之间的逻辑操作规律是:
对于and操作符: 只要左边的表达式为真,整个表达式返回的值是右边表达式的值,否则,返回左边表达式的值
对于or操作符: 只要两边的表达式为真,整个表达式的结果是左边表达式的值。 如果是一真一假,返回真值表达式的值 如果两个都是假,比如空值和0,返回的是右边的值。(空值或0)
Python中 and,or 的计算规则的更多相关文章
- python 中and,or计算规则
and :如果表达式都不为假,则返回最后一个表达式的值,如果为假返回第一个表达式为假的值.(遇到假的表达式就返回此表达式的值) or :如果都为假,,返回最后一个假表达式的值,如果有真,则返回第一个真 ...
- 详解 Python 中的下划线命名规则
在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...
- Python中关于日期的计算总结
1.获取当前时间的两种方法: 代码如下: import datetime,timenow = time.strftime("%Y-%m-%d %H:%M:%S")print now ...
- python 中最好用的身份证规则解析工具,地区码、性别、出生年月、身份证编码等快速校验!
安装并导入依赖库 # pip install parseIdCard from parseIdCard import parseIdCard from pprint import pprint 地区码 ...
- python中,数字类型计算
说明: 今天在看python数字类型的操作,在此记录下. 操作过程: 1.数字的加减乘除 >>> 2 + 24>>> 4 - 22>>> 2 - ...
- Python中and(逻辑与)计算法则
在程序设计中,and称为逻辑与运算,也称布尔运算:1.and是在布尔上下文中从左到右计算表达式的值:2.0.''.[].().{}.None.False在布尔上下文中为假:其它任何东西都为真:3.如果 ...
- python中各类时间的计算
python获取当前系统时间: nowTime=time.localtime() 获取当前系统日期: nowDate=datetime.datetime(nowTime[0],nowTime[1],n ...
- Python中装饰器(转)
本文由 伯乐在线 - 7even 翻译,艾凌风 校稿.未经许可,禁止转载!英文出处:Simeon Franklin.欢迎加入翻译组. 好吧,我标题党了.作为 Python 教师,我发现理解装饰器是学生 ...
- Python中AND-OR的用法
学习Python中的lambda函数的时候,才发现原来Python中的AND和OR还可以有一些别的用法.Python中的布尔逻辑计算的结果并非返回布尔值,而是返回它们相互之间的某一个.文章的部分例子来 ...
- Python 中的属性访问与描述符
在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...
随机推荐
- Ubuntu下修改tomcat6默认的8080端口
$ sudo vi /etc/tomcat6/server.xml 将 <Connector port="8080" protocol="HTTP/1.1&qu ...
- vsftpd服务tar包安装
一般如果有网络ubuntu直接apt-get install 安装vsftpd服务即可. 没网络只能下好vsftpd的tar包自己安装配置. 1. 解压 tar -xvf vsftpd-3.0.2.t ...
- iOS学习笔记10 - Bundle和Info.plist
经常会有需要从应用中搜索并读取一个文件或图片.这时候就会用到如下的语句: NSString *path = [[NSBundle mainBundle] pathForResource:@" ...
- 【BZOJ】1596: [Usaco2008 Jan]电话网络(树形dp+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=1596 一开始交了个貌似正确的dp,wa了. 我只考虑了儿子覆盖的情况,没有考虑父亲QAQ 那么我们要 ...
- 你不知道的C#ToString方法
我们都知道,String类型的ToString方法在我们平时的编程中应用非常的广泛,那么,对于那些很有用但又很少用的方法,你又熟悉几个呢?下面直接上代码: .ToString("C" ...
- Arcgis for Js之GeometryService实现測量距离和面积
距离和面积的測量时GIS常见的功能.在本节,讲述的是通过GeometryService实现測量面积和距离.先看看实现后的效果: watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- Duilib教程-简单介绍
在读这篇博客的时候,可能您已经对duilib有一定的了解.所以,我并不打算对duilib进行过多的介绍.它的内核首先由外国人编写,后来由国人一个小组接过来继续编写,于是就有了现在的Duilib. 1. ...
- Google I/O 2013 – Volley: Easy, Fast Networking for Android
1.什么是volley Volley是Ficus Kirpatrick在Gooogle I/O 2013发布的一个处理和缓存网络请求的库,能使网络通信更快,更简单,更健壮.Volle ...
- 2013暑假江西联合训练赛 -- by jxust_acm 解题报告
第6题是利用周期性求解, 第7题是 (总的序列长度-最长的满足要求的序列长度) 第8题是 设定起点,可以找到最早出现的不满足条件,然后后面都是不满足的,利用队列求解这个过程 大神给的简单,精炼的题解. ...
- 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...