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 相关文章推荐
400多行Python代码实现了一个FTP服务器
May 10 Python
Python Web开发模板引擎优缺点总结
May 06 Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
python爬虫之自动登录与验证码识别
Jun 15 Python
python 并发下载器实现方法示例
Nov 22 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
一篇文章带你搞懂Python类的相关知识
May 20 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 图片上传代码
2011/09/13 PHP
PHP输出时间差函数代码
2013/01/28 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
深入理解Vue transition源码分析
2017/07/30 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
python3实现基于用户的协同过滤
2018/05/31 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
物业公司采购员岗位职责
2013/12/31 职场文书
我的求职计划书
2014/01/10 职场文书
大学毕业感言
2014/01/10 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
最美乡村教师观后感
2015/06/11 职场文书
2019同学聚会主持词
2019/05/06 职场文书
Python基础之元类详解
2021/04/29 Python
Mysql基础知识点汇总
2021/05/26 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS