Python流程控制

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}
相关文章
相关标签/搜索