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 相关文章推荐
在Django的URLconf中使用命名组的方法
Jul 18 Python
python实现web方式logview的方法
Aug 10 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python入门_学会创建并调用函数的方法
May 16 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
基于python检查矩阵计算结果
May 21 Python
python不同版本的_new_不同点总结
Dec 09 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 debug 安装技巧
2011/04/30 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php微信开发之关注事件
2018/06/14 PHP
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
python多线程抽象编程模型详解
2019/03/20 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
Python实现播放和录制声音的功能
2020/08/12 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
美术专业自荐信
2014/07/07 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang