Python流程控制express
1)if条件测试数据结构
Python的比较操做 全部的Python对象都支持比较操做 测试操做符('=='操做符测试值的相等性; 'is'表达式测试对象的一致性) Python中不一样类型的比较方法 数字:经过相对大小进行比较 字符串:按照字典次序逐字符进行比较 列表和元组:自左至右比较各部份内容 字典:对排序以后的(键、值)列表进行比较 Python中的真假: 一、任何非0数字和非空对象都为真; 二、数字0、空对象和特殊对象None均为假; 三、比较和相等测试会递归地应用于数据结构中; 四、返回值为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循环app
用于编写通用迭代结构 顶端测试为真即会执行循环体,并重复屡次直到为假后执行循环后的其余语句 语法格式: 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}