Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识。逻辑关系运算有以下几种运算符.
下面是逻辑与实例,通过例子我们了解一下and、or等逻辑运算操作机制。
def if_check():
global x
x = 79
print(" in if_check x = ", x)
if x >= 60 and x < 70:
print(" good")
if x >= 70 and x < 80:
print(" better")
if x >= 80 and x < 90:
print(" best")
if x >= 90 and x < 100:
print(" Excellent")
if x < 60:
print(" You need improve") def main():
global x
print(" in main x = ", x)
if_check() x = 12
main()
Python程序运行结果如下所示。
由于x = 79所以只有if x >= 70 and x < 80:的condition满足,故打印better,这里我们可以看出逻辑and运算符是要求and前后的布尔值都是真才能判定condition为真。
我们在看看or或逻辑运算符的实例,or要求or两边的布尔值有一个为真即判定if的conditon为真,如果两边都是假,那么if的条件判断值为假。思考一下如果我们把上边的程序里的所有and都改成or,会打印几条?
def if_check():
global x
x = 79
print(" in if_check x = ", x)
if x >= 60 or x < 70:
print(" good")
if x >= 70 or x < 80:
print(" better")
if x >= 80 or x < 90:
print(" best")
if x >= 90 or x < 100:
print(" Excellent")
if x < 60:
print(" You need improve") def main():
global x
print(" in main x = ", x)
if_check() x = 12
main()
请自己分析一下程序的运行结果。
good和better被打印出来可以理解(79 >= 60, 79 > = 70都为真),但为何best和Excellent也被打印出来了呢?
当x = 79时,x >= 80为假但x < 90确实真,两者做逻辑或运算其综合表达式的值为真。同理,if x >= 90 or x < 100:里有79 < 100为真,故if的条件判断语句(x >= 90 or x < 100)为真。
最后需要说明一点的是,在if里and和or可以不止一个。
if (x > 0 or x < 100) and (y > 0 or y < 100):
z = x * y
——————————————————————————————————
Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式的更多相关文章
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
- Python学习入门基础教程(learning Python)--3.3.2 Python的关系运算
如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...
- Python学习入门基础教程(learning Python)--2.3.3Python函数型参详解
本节讨论Python下函数型参的预设值问题. Python在设计函数时,可以给型参预设缺省值,当用户调用函数时可以不输入实参.如果用户不想使用缺省预设值则需要给型参一一赋值,可以给某些型参赋值或不按型 ...
- Python学习入门基础教程(learning Python)--6.3 Python的list切片高级
上节"6.2 Python的list访问索引和切片"主要学习了Python下的List的访问技术:索引和切片的基础知识,这节将就List的索引index和切片Slice知识点做进一 ...
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...
- Python学习入门基础教程(learning Python)--5.1 Python下文件处理基本过程
Python下的文件读写操作过程和其他高级语言如C语言的操作过程基本一致,都要经历以下几个基本过程. 1. 打开文件 首先是要打开文件,打开文件的主要目的是为了建立程序和文件之间的联系.按程序访问文件 ...
- Python学习入门基础教程(learning Python)--5.2 Python读文件基础
上节简单的说明了一下Pyhon下的文件读写基本流程,从本节开始,我们做几个小例子来具体展示一下Python下的文件操作,本节主要是详细讲述Python的文件读操作. 下面举一个例子,例子的功能是读取当 ...
- Python学习入门基础教程(learning Python)--5 Python文件处理
本节主要讨论Python下的文件操作技术. 首先,要明白为何要学习或者说关系文件操作这件事?其实道理很简单,Python程序运行时,数据是存放在RAM里的,当Python程序运行结束后数据从RAM被清 ...
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
本节的主要讨论内容是有关dict字典的一些常用的方法函数的使用和范例展示. 1. clear清除字典数据 语法结构如下: dict_obj.clear() 示例代码如下: dict1 = {'web' ...
随机推荐
- C语言中 struct成员变量顺序对内存的占用
在C语言的结构体中,是会按照其变量类型来进行分配内存大小的.但是对于不同的编译器,结果是不同的,在VC++6.0中是怎么个分配情况呢?用一下C中的关键字sizeof()来测试下,注意sizeof()不 ...
- 与众不同 windows phone (4) - Launcher(启动器)
原文:与众不同 windows phone (4) - Launcher(启动器) [索引页][源码下载] 与众不同 windows phone (4) - Launcher(启动器) 作者:weba ...
- c/c++ 直接使用动态库 dlopen
c/c++ 直接使用动态库 dlopen 把各个版本编译成动态库,××.so ,提供统一的接口进行调用.这里使用的工具是dlxx系列函数 dlopen void *dlopen(const char ...
- c++ inheritance -- 继承
c++ inheritance -- 继承 终于要决心弄明白继承了,以前仅限于大学时学习,以后工作也没有用,现在就依照(百度百科)文章写些测试的代码. 文章说 ==================== ...
- nginx tcp proxy 连接保持设置
根据前文Nginx tcp proxy module试用的设置,在测试环境中发现tcp连接经常掉线.在该项目站点上找到一个issue,也谈论这件事情,不过别人用在web socket协议上. 其实就是 ...
- Memcached 群集高可用性(HA)架构
Memcache本身并不实现集群功能.假设你想使用Memcahce集群需要使用第三方软件或编程来实现自己的设计,这里将被用来memagent实现代理,memagent也被称为magent.我们注意到, ...
- spring中bean的设计模式
默认的是单例的. 如果不想单例需要如下配置: <bean id="user" class="..." singleton="false" ...
- ThinkPHP配置项(六)
原文:ThinkPHP配置项(六) 配置项--这只是部分的配置,后期会随时跟大家更新分享 1:修改URL分隔符 目录:thinkphp\Home\Conf\config.php打开配置文件代码中加上: ...
- [Android学习笔记]继承自ViewGroup的控件的过程学习
ViewGroup文档 http://developer.android.com/training/index.html 继承自ViewGroup需要重写onLayout方法用来为子View设定位置信 ...
- SetCapture ReleaseCapture
函数功能:该函数在属于当前线程的指定窗体里设置鼠标捕获.一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内.同一时刻仅仅能有一个窗体捕获鼠标.假设鼠标光标在还有一个线程创建的窗体 ...