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 设置文件编码格式的实现方法
Dec 21 Python
Python中装饰器高级用法详解
Dec 25 Python
Python解决N阶台阶走法问题的方法分析
Dec 28 Python
Python AES加密实例解析
Jan 18 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
学python安装的软件总结
Oct 12 Python
python+Django实现防止SQL注入的办法
Oct 31 Python
在python中求分布函数相关的包实例
Apr 15 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
python 统计代码耗时的几种方法分享
Apr 02 Python
用Python实现Newton插值法
Apr 17 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
农民C键的运用技巧
2020/03/04 星际争霸
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
php静态文件生成类实例分析
2015/01/03 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
Python实现破解猜数游戏算法示例
2017/09/25 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
基于python 凸包问题的解决
2020/04/16 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
质检的岗位职责
2013/11/17 职场文书
银行员工辞职信范文
2014/01/20 职场文书
高考寄语大全
2014/04/08 职场文书
2014年学习部工作总结
2014/11/12 职场文书
亮剑精神观后感
2015/06/05 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
html form表单基础入门案例讲解
2021/07/15 HTML / CSS