Python的条件语句与运算符优先级详解


Posted in Python onOctober 13, 2015

Python 条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:

Python的条件语句与运算符优先级详解

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:
  执行语句……
else:
  执行语句……

其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,具体例子如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 例1:if 基本用法

flag = False
name = 'luren'
if name == 'python':     # 判断变量否为'python'
  flag = True     # 条件成立时设置标志为真
  print 'welcome boss'  # 并输出欢迎信息
else:
  print name       # 条件不成立时输出变量名称

输出结果为:

>>> luren  # 输出结果

if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值是,可以使用以下形式:

if 判断条件1:
  执行语句1……
elif 判断条件2:
  执行语句2……
elif 判断条件3:
  执行语句3……
else:
  执行语句4……

实例如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 例2:elif用法

num = 5   
if num == 3:      # 判断num的值
  print 'boss'    
elif num == 2:
  print 'user'
elif num == 1:
  print 'worker'
elif num < 0:      # 值小于零时输出
  print 'error'
else:
  print 'roadman'   # 条件均不成立时输出

输出结果为:

>>> roadman # 输出结果

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 例3:if语句多个条件

num = 9
if num >= 0 and num <= 10:  # 判断值是否在0~10之间
  print 'hello'
>>> hello # 输出结果

num = 10
if num < 0 or num > 10:  # 判断值是否在小于0或大于10
  print 'hello'
else:
 print 'undefine'
>>> undefine # 输出结果

num = 8
# 判断值是否在0~5或者10~15之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):  
  print 'hello'
else:
  print 'undefine'
>>> undefine # 输出结果

当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

简单的语句组
你也可以在同一行的位置上使用if条件判断语句,如下实例:

#!/usr/bin/python 
# -*- coding: UTF-8 -*-
 
var = 100 
 
if ( var == 100 ) : print "变量 var 的值为100" 
 
print "Good bye!"

以上代码执行输出结果如下:

变量 var 的值为100
Good bye!

Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
Python的条件语句与运算符优先级详解
以下实例演示了Python所有运算符优先级的操作:

#!/usr/bin/python

a = 20
b = 10
c = 15
d = 5
e = 0

e = (a + b) * c / d    #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ", e

e = ((a + b) * c) / d   # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ", e

e = (a + b) * (c / d);  # (30) * (15/5)
print "Value of (a + b) * (c / d) is ", e

e = a + (b * c) / d;   # 20 + (150/5)
print "Value of a + (b * c) / d is ", e

以上实例输出结果:

Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50
Python 相关文章推荐
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
Python实现定时精度可调节的定时器
Apr 15 Python
python计算列表内各元素的个数实例
Jun 29 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Python lambda表达式原理及用法解析
Aug 18 Python
如何用Python 加密文件
Sep 10 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
Python基础之pandas数据合并
Apr 27 Python
简单介绍Python的第三方库yaml
Jun 18 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 #Python
Python中的字典与成员运算符初步探究
Oct 13 #Python
详解Python中的元组与逻辑运算符
Oct 13 #Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 #Python
Python语法快速入门指南
Oct 12 #Python
初步认识Python中的列表与位运算符
Oct 12 #Python
Python入门学习之字符串与比较运算符
Oct 12 #Python
You might like
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
js同时按下两个方向键
2007/12/01 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
妇科医生自荐信
2013/11/05 职场文书
大连导游词
2015/02/12 职场文书
《叶问2》观后感
2015/06/15 职场文书
运动会宣传语
2015/07/13 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL