【Python】Python流程控制
1)if条件测试
Python的比较操作
所有的Python对象都支持比较操作
测试操作符('=='操作符测试值的相等性; 'is'表达式测试对象的一致性)
Python中不同类型的比较方法
数字:通过相对大小进行比较
字符串:按照字典次序逐字符进行比较
列表和元组:自左至右比较各部分内容
字典:对排序之后的(键、值)列表进行比较
Python中的真假:
1、任何非0数字和非空对象都为真;
2、数字0、空对象和特殊对象None均为假;
3、比较和相等测试会递归地应用于数据结构中;
4、返回值为True或False;
组合条件测试:
X and Y: 与运算
X or Y: 或运算
not X: 非运算
注意:
and或or运算会返回真或假的对象,而不是True或者False
and和or是短路操作符
例: >>>a = True
>>>print a and 'a = T' or 'a = F'
'a=T' 会返回‘a = T’,若不理解自行补充布尔运算
if测试的语法控制结构
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
...
else:
else_suite
注意:
elif、else语句均是可选的
仅用于占位,而后填充相关语句时,可以使用pass
if/else三元表达式
if X :
A = Y
else :
A = Z
可以改写成 A = Y if X else Z
语法格式:
expression1 if boolean_expression else expression2
(如果boolean_expression的值为True,则条件表达式的结果为expression1,否则为expression2)
2)while循环
用于编写通用迭代结构
顶端测试为真即会执行循环体,并重复多次直到为假后执行循环后的其他语句
语法格式:
while bool_expression:
while_suite
else:
else_suite
注意:
else分支为可选部分
只要boolean_expression的结果为True,循环就会执行
boolean_expression的结果为False时终止循环,如果有else分支,则会执行
break: 跳出最内层的循环;
continue: 跳到所处的最近层循环的开始处;
pass: 占位语句
else代码块:循环正常终止才会执行;如果循环终止是由break跳出导致的,则else不会执行;
while循环语法格式扩展
while bool_expression1:
while_suite
if boolean_expression2:
break
if boolean_expression3:
continue
else:
else_suite
例: 使用键盘输入数据到列表内,直到输入q或quit时停止
>>>test = [ ]
>>>while True:
x = raw_input('Enter an entry: ')
if x == 'q' or x == 'quit':
break
else:
test.append(x)
3)for循环
用于遍历任何有序的序列对象内的元素
可用于字符串、元组、列表和其它的内置可迭代对象,以及通过类所创建的新对象
语法格式:
for expression1 in iterable:
for_suite
else:
else_suite
注意:
expression或是一个单独的变量,或是一个变量序列,一般以元组的形式给出
例:
>>> T = [(1,2),(3,4),(5,6),(7,8)]
>>> for (a,b) in T:
print a,b
1 2
3 4
5 6
7 8
for循环形式扩展
语法格式:
for expression in iterable:
for_suite
if boolean_expression2:
break
if boolean_expression3:
continue
else:
else_suite
for循环比while循环执行速度快
Python中提供了两个内置函数,用于在for循环中定制特殊的循环(range或xrange 与zip)
4)range函数与zip
range:一次性地返回连续的整数列表
xrange:一次产生一个数据元素,相较于range更节约空间
zip:返回并行的元素元组的列表,常用于在for循环中遍历数个序列
range函数:
非完备遍历(用于每隔一定的个数元素挑选一个元素)
>>> range(0,10,2)
[0,2,4,6,8,10]
>>> S = 'How are you ?'
>>> for i in range(0,len(S),2):
print S[i]
H w a e y u ?
修改列表
>>> L = [1,2,3,4,5]
>>> for i in range(len(L)):
L[i]+=1
>>> print L
[2,3,4,5,6]
zip
实现并行迭代
例1:
>>> L1 = [ 1,2,3,4,5 ]
>>> L2 = ['a','b','c','d','e']
>>> zip(L1,L2)
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]
动态构造字典
例2: 已有 keys = [ 'x','y','z'] values = [1,2,3] 使用循环生成字典使其一一对应
>>> dict1 = {}
>>> keys = [ 'x','y','z']
>>> values = [1,2,3]
>>> for (k,v) in zip(keys,values):
dict1[k] = v
>>> print dict1
{'y': 2, 'x': 1, 'z': 3}
【Python】Python流程控制的更多相关文章
- Python之流程控制——if...else...
Python之流程控制--if...else... 一.流程控制 假如把程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分岔口.当遇到分岔口时,你得判断哪条岔路是你要走的路,如果我们想让程 ...
- Python之流程控制——while循环
Python之流程控制--while循环 一.语法 while 条件: 执行代码 while就是当的意思,它指当其后面的条件成立,就执行while下面的代码. 例:写一个从0打印到10的程序 coun ...
- python之流程控制升级
python之流程控制:if elif else while for 一.流程控制之if: 1.1为什要有if判断:让计算机能像人一样代替人类工作,那么计算机应该有对于事务的读错,真假,是否可行的 ...
- python之流程控制与运算符
第一:流程控制 一:if条件语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 单分支语句: 单分支,单个条件 age = 20 if age >= 18: print('you ...
- Python【流程控制与循环】
本文介绍 1.流程控制 2.while循环 一.流程控制 单分支 if 条件: ...Python代码,满足条件执行 双分支 if 条件: ...Python代码,满足条件执行 else: ...Py ...
- Python基础—流程控制
一.Python流程控制 计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和循 ...
- python基础-流程控制(if,while,for)
今日内容总结 --流程控制(if,while,for) if:用来判断事物的对错.真假.是否执行.根据不同的情况判断,条件满足执行某条件下的语句 语法结构(3种) # 第一种,只有if结构.条件表达式 ...
- python之流程控制上-if、while
流程控制 编写程序,是将自己的逻辑思想记录下来,使得计算机能够执行的过程. 而流程控制,则是逻辑结构中十分重要的一环. 在程序中,基础的流程结构分为顺序结构.分支结构.顺序结构 顺序结构自不必多说,上 ...
- python基础-->流程控制-->分支结构-->单项分支-->双向分支
# ###流程控制 ''' 流程:代码执行过程 流程控制:对代码执行过程的管控 顺序结构:代码默认从上到下依次执行 分支结构:对代码执行过程的管控 循环机构: while for ..in.... 分 ...
- python之流程控制
流程控制之if-else if 条件1: 满足条件1的情况 else if 条件2: 满足条件2的情况 if 条件2.1: 满足条件2.1的情况(if-else语句的嵌套) else if 条件2.2 ...
随机推荐
- 20155230 实验四《android程序设计》实验报告
20155230 实验四<Android程序设计>实验报告 一.安装Android Stuidio 二.从一个活动启动另一个活动 在启动活动的活动里添加如下语句即可 Intent inte ...
- 20155234 《Java程序设计》实验四 (Android程序设计)实验报告
实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管理器的使用: 掌握Android中事件处理机制. 实验步骤 (一)Android S ...
- 20155330 2016-2017-2 《Java程序设计》第三周学习总结
20155330 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 学习目标 区分基本类型与类类型 理解对象的生成与引用的关系 掌握String类和数组 理解封 ...
- 20145207 《Java 程序设计》实验三 (敏捷开发与XP实践)实验报告
<Java 程序设计>实验三 (敏捷开发与XP实践)实验报告 目录 改变 敏捷开发与XP实践实验要求 实验成果 课后思考 改变 修改了之前仅仅是贴了图片,连代码都没粘的状态.增加了自己的思 ...
- [BZOJ1857][SCOI2010]传送带-[三分]
Description 传送门 Solution 三分套三分.代码简单但是证明苦兮兮.. 假如我们在AB上选了一个点G,求到该点到D的最小时间. 图中b与CD垂直.设目前从G到D所耗时间最短的路径为G ...
- angular中的$q服务实例
用于理解$q服务 参考:http://www.zouyesheng.com/angular.html#toc39 广义回调管理 和其它框架一样, ng 提供了广义的异步回调管理的机制. $http 服 ...
- hive 数据导入
Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...
- Android开发笔记——图片缓存、手势及OOM分析
把图片缓存.手势及OOM三个主题放在一起,是因为在Android应用开发过程中,这三个问题经常是联系在一起的.首先,预览大图需要支持手势缩放,旋转,平移等操作:其次,图片在本地需要进行缓存,避免频繁访 ...
- 我们一起学习WCF 第五篇数据协定和消息协定
A:数据协定(“数据协定”是在服务与客户端之间达成的正式协议,用于以抽象方式描述要交换的数据. 也就是说,为了进行通信,客户端和服务不必共享相同的类型,而只需共享相同的数据协定. 数据协定为每个参数或 ...
- 面试时让你说一个印象最深的bug,该怎么回答
其实,面试官并不关心你描述的这个bug是否真的有价值,或有多曲折离奇?他只是: * 了解你平时工作中的测试能力 所以,这就要求的你平时工作中遇到bug时试着自己去定位,定位bug的过程远比你的单纯的执 ...