流程控制语句
条件语句:if
if语句用于实现条件判断,让程序作出简单或复杂的决策。 if...else... if...elif...else
循环语句:
1)条件循环while语句
定义 while语句用于实现条件循环,可以在条件满足的情况下循环执行代码块 若结果为真则执行循环,反之不执行(若...则循环...) 语法·
While条件判断: While条件判断根据代码返回的布尔逻辑结果True或False来进行选择操作 与if条件一样 布尔/比较/身份成员操作能够返回True和False 布尔操作 and or not 比较操作 == != > < > = < = 成员操作 in not in 身份操作 is is not 一般在条件判断之前,会有初始语句,例如定义变量初始值等 n = 0 i = 1 循环代码块 重复执行,直到条件不满足 一般包含递增赋值语句,确保循环最终能退出 i = i + 1
2)for循环语句
for语句用于实现循环,例如对列表和字符等可迭代对象进行遍历
语法 for X in Y X为变量 Y为可迭代对象 可以是字符串/元祖/列表/字典/函数等可迭代对象 for+range
for语句结合range( ) 功能 range( )函数可以生成整数列表 range(x,y)会生成x到y-1的整数列表 range(1,10)会生成1到9的整数列表 语法 完整语法 range(start, end, step) range( )返回一个包括所有k的列表,这里start<=k<end,从start到end k每次递增step。step不可以为0,否则将发生错误。 若没有给step,只有2个值,则step默认为1 range返回的值不能等于end,可以等于start 简略语法 range( end ) >>> range(5) [0, 1, 2, 3, 4] range (start, end) 举例 >>> for x in range(1,10): ... print x
for+zip语句
for语句结合zip() 功能 zip( )函数获取多个列表的元素,生成内置元祖的列表 结合for循环语句可以实现多列表并行遍历 语法 for (x,y) in zip (l1, l2) 举例 >>> l1 = ['a','b','c','d'] >>> l2 = [1,2,3,4] >>> zip(l1,l2) [('a', 1), ('b', 2), ('c', 3), ('d', 4)] >>> for (x,y) in zip(l1,l2): ... print x , y ... a 1 b 2 c 3 d 4
for+map()
功能 map( )函数将可迭代对象的每个元素传入函数并返回一个列表 语法 map(f, iterable) [f(x) for x in iterable] map函数包括函数和可迭代对象(列表等) 当函数为None时,map( )可以实现并行解析 举例 >>> l1 = ['a','b','c','d'] >>> l2 = [1,2,3,4] >>> map(None,l1,l2) [('a', 1), ('b', 2), ('c', 3), ('d', 4)] >>> for (x,y) in map(None,l1,l2): ... print x , y ... a 1 b 2 c 3 d 4
for语句结合enumerate( )
功能 enumerate( )用于给传入的可迭代对象索引,返回迭代器 语法 >>> for (x,y) in enumerate(迭代对象): 举例 >>> l1 = ['a','b','c'] >>> for (x,y) in enumerate(l1): ... print x,y ... 0 a 1 b 2 c
循环控制
1)break
用于while和for循环中,用于终止整个循环语句
2)continue
定义
用于while和for循环中,用于终止本次循环
3)pass 用于循环语句、条件语句、函数语句中占空,保证语句完整
迭代器
迭代(Iteration)指的是对可迭代对象进行从头到尾访问/遍历的过程;例如for循环的底层原理就是一个迭代
迭代器
迭代器(Itarator)指的是通过iter( )函数所返回的一个支持next( )方法的对象
迭代方法
iter( ) 通过iter( )可以获得可迭代对象 默认可迭代对象没有next( )函数,通过iter( )迭代函数赋予next( ) next( ) 返回可迭代对象中的下一个元素,并检查StopIteration异常终止迭代
可迭代对象
有哪些可迭代对象? 列表 元祖 字符串 字典 文件 自身有next( )方法 迭代的原理是什么? 可迭代对象(iterable)在进行遍历/迭代的时候,自动调用iter获取迭代器,自动调用next方法获取下一个元素 例如 for i in [1,2,3] Python自动调用iter( )函数获取迭代器,自动调用next( )函数获得下一个元素 next( )函数检查StopIteration异常并终止迭代
语法
iter( L ) next( L )
通过try...except...语句自动迭代列表:注:等价于for i in l >>> l = [1,2,3,4,5] >>> i = iter(l) >>> i <listiterator object at 0x10d2b8bd0> >>> try: ... while True: ... n = i.next() ... print n ... except StopIteration: ... pass ... 1 2 3 4 5
列表解析
定义 列表解析(List comprehensions)主要用于动态的创建列表 列表解析是迭代技术的一个应用,采用for循环和迭代函数动态生成列表,更简洁方便
语法
[X for Y in Z] [expr for iter_var in iterable] for循环通过变量iter_var遍历可迭代对象iterable expr应用于序列的每个成员,最终结果即产生的列表 [X for Y in Z if J] if J 为判断条件 X为需要得到的结果 X与Y是相关联的 Y是用于遍历Z的参数 Z是被遍历的对象 Z可以是字符串/元祖/列表/字典/函数等可迭代对象
生成器表达式
定义 生成器是特定的函数, 允许返回一个值, 然后"暂停"代码的执行, 稍后恢复 生成器函数 在 Python 中,带有 yield 的函数被称之为 generator(生成器) 使用yield语句一次返回一个结果,在每个结果之间挂起和继续它们的状态 生成器表达式是生成器的应用,是列表解析和生成器的结合,也是列表解析的拓展 生成器表达式按需返回产生结果的一个对象,而不是返回或构建一整个结果列表 列表解析是直接生产最终的列表,而生成器表达式按需生产内容,相比而言,后者更加节省内存空间
语法:
(expr for iter_var in iterable if cond_expr) 列表解析用[ ] 生成器表达式用( )
来源:oschina
链接:https://my.oschina.net/u/4442211/blog/3211405