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中的mock库对Python代码进行模拟测试
Apr 16 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
python中@property和property函数常见使用方法示例
Oct 21 Python
python实现操作文件(文件夹)
Oct 31 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
python正则表达式匹配IP代码实例
Dec 28 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
Python原始套接字编程实例解析
Jan 29 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
keras:model.compile损失函数的用法
Jul 01 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 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在不同页面间传递Json数据示例代码
2013/06/08 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Django中FilePathField字段的用法
2020/05/21 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
理工科学生的自我评价
2013/12/15 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
给孩子的新年寄语
2014/04/08 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
高中语文教学反思范文
2016/02/16 职场文书
高一化学教学反思
2016/02/22 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle