zoukankan      html  css  js  c++  java
  • 【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}
  • 相关阅读:
    nginx 的请求处理阶段
    docker 的实践操作
    inno setup 1
    缓存算法
    think in uml-关系
    centos mono
    think in uml 2.1
    TFS 创建分支
    think in uml 1
    WebCast课程列表2
  • 原文地址:https://www.cnblogs.com/yanglang/p/7118519.html
Copyright © 2011-2022 走看看