在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识。逻辑关系运算有以下几种运算符.

下面是逻辑与实例,通过例子我们了解一下and、or等逻辑运算操作机制。

def if_check(): global xx = 79print(" 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 xprint(" 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 xx = 79print(" 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 xprint(" 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逻辑关系表达式相关推荐

  1. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  2. Python学习入门基础教程(learning Python)--6.3 Python的list切片高级

    上节"6.2 Python的list访问索引和切片"主要学习了Python下的List的访问技术:索引和切片的基础知识,这节将就List的索引index和切片Slice知识点做进一 ...

  3. Python学习入门基础教程(learning Python)--2.3.5Python返回多个值问题

    本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. [python]view plaincopy #def ...

  4. Python学习入门基础教程(learning Python)--1.4 Python数据处理基础 .

    本节主要讨论数据操作及运算符等基础知识,熟悉C语言相关知识的读者请跳过此节. 在高级语言编程过程中,有了数据以后通常要对数据进行相应的数据处理,加.减.乘.除等基本运算,不难理解. 在Python里 ...

  5. Python学习入门基础教程(learning Python)--5.3 Python写文件基础

    前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...

  6. Python学习入门基础教程(learning Python)--5.5 Python写操作详解

    在前文5.3节我们简单的学习了如何在Python里进行文件的写操作,所举例里写入的都是字符串数据,那我们现在想写入数值型数据可以直接写入么?我们先看看下边的程序是否能正常运行? wfile = ope ...

  7. Python学习入门基础教程(learning Python)--5.4 Python读文件详解

    问题1.多余的'\n' 在5.2节里我们基本掌握了Python下的文件读文件操作基本方法,但是也存在一些小小问题,细心的读者会发现下面这幅图的问题. 上图每次打印输出words时,先打印了一行从文件里 ...

  8. Python学习入门基础教程(learning Python)--4.3 Python的for嵌套

    Python下的循环体和其他高级语言一样循环体也是可以嵌套的! 我们做个小例子看看,从而结束本章的学习. 任务:打印矩阵下三角 BASE_SIZE = 8for r in range(BASE_SIZ ...

  9. Python学习入门基础教程(learning Python)--4.2.3 Python的for实现递归,(0629学习笔记)我研究出来了!...

    呵呵,本节主要简单的讨论一下用for来实现递归操作. 先看一下本节设计的小程序要求,有这样一个list: [1, 2, [3, 4], 5, 6, [7, 8, 9]] 用for循环打印结果是什么样的 ...

最新文章

  1. 前百度面试官整理的——Java后端面试题(一)
  2. 51nod 1225 余数之和(数论)
  3. 序列化以及反序列化二叉树
  4. drools规则引擎因为内存泄露导致的内存溢出
  5. Kibana 创建索引 POST 403 (forbidden) on create index
  6. C++安全方向openssl:绪论
  7. 边缘节点服务ENS > 产品简介 > 什么是边缘节点服务ENS
  8. 关于sliverlight4 打印功能
  9. Docker container 集装箱说明
  10. 万网空间PHP 伪静态化,disuczx版块URL伪静态目录化设置方法
  11. 用三款评测证明,数学思维在线学习APP正在用游戏化打开数学之门
  12. zigbee协议栈学习(0)
  13. linux查看设备网卡型号,linux查看网卡型号
  14. java实现五子棋_Java的五子棋实现
  15. 【ZYNQ】petalinux包含自定义的动态库
  16. markdown转微信公众号编辑器
  17. 阿里数据分析师面试准备二:对阿里数据分析师岗位的理解
  18. Chrome源码剖析、上--多线程模型、进程通信、进程模型
  19. flashback总结六之Flashback_Transaction_Query
  20. 动漫鬼刀MAC高清动态桌面壁纸

热门文章

  1. Linux C 程序的开发环境
  2. Spring+SpringMVC+MyBatis深入学习及搭建(一)——MyBatis的基础知识
  3. enterText与typeText
  4. Google使用人工智能压缩图片,效果优于JPEG
  5. 资源推荐 | TensorFlow电子书《FIRST CONTACT WITH TENSORFLOW》
  6. 三大缓存框架ehcache、memcache和redis的介绍
  7. Asp.Net 构架(Http Handler 介绍) - Part.2
  8. saiku+kettle整合(二)数据装载
  9. Mysql中where条件一个单引号引发的性能损耗
  10. Visual Studio 2017最新版正式发布!适用于任何开发人员、平台及APP丨附下载