Python 流程控制
    Python语言中的流程控制类似其他的编程语言,包括了像if,for和while这样的语法结构。
一、if 语句
    if语句包含一个逻辑表达式,对给定的条件表达式进行判断,然后根据结果确定执行的代码块。
    if语句的语法形式有三种:
    1、 if expression:                                                                          
                 if_statement(s)  #if语句块                                          
    2、 if expression:                                                                                                      
                 if_statement(s) #if语句块                                                                                                                                             
           else:                                                                                                                                                     
                 else_statement(s) #else语句块
    3、 if expression:
                 if_statement(s)  #if语句块                                                                                                                           
           elif expression:
                 elif_statement1(s)  #elif语句块1
           elif expression:                                                                                                              
                 elif_statement2(s)  #elif语句块2     
           ...   
           else: 
                 else_statement(s)  #else语句块  
                                                                                                         
    先来看看第一种if条件语句的语法形式:
    if expression:
        if_statement(s)  #if语句块
    执行过程:首先判断expression表达式是否为真,若表达式为真,则执行if_statement语句块,若表达式为假,则(跳过if_statement语句块)执行if语句块外的语句。
    注:在Python中,使用缩进作为其语句的分组方法,推荐使用4个空格,而避免使用Tab缩进。
        非空-->True, None或0 -->False
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_statement1.py
     var = 10
     if var:
        print 'if语句块执行'
        print var
     print 'if语句块外的语句被执行'
     
    执行结果:
        if语句块执行
        10
        if语句块外的语句被执行
        
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_statement2.py
     var1 = 0
     if var1:
        print 'if语句块执行'
        print var1
     print 'if语句块外的语句被执行'


    执行结果:
        if语句块外的语句被执行 
    2、if...else语句的语法形式
    if expression:
        if_statement(s)
    else:
        else_statement(s) 
    执行过程:首先判断 expression表示是否为真,若为真则执行if_statement(s)语句块,若为假则执行else_statement(s)语句块,最后执行if语句块外的语句。
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_else_statement1.py
     var = 'this is a string'
     if var:
        print 'if语句块被执行'
        print var
     else:
        print 'else语句块被执行'
     print 'if_else语句块外的语句被执行' 
    执行结果:
        if语句块被执行
        this is a string
        if_else语句块外的语句被执行 
  
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_else_statement2.py
     var2 = None
     if var2:
        print 'if语句块被执行'
        print var
     else:
        print 'else语句块被执行'
     print 'if_else语句块外的语句被执行' 
    执行结果:
        else语句块被执行
        if_else语句块外的语句被执行


    3、if...elif...else语句的语法形式
    if expression1:
        if_statement(s)
    elif expression2:
        elif_statement1(s)
    elif expression3:
        elif_statements2(s)
    ...
    else:
        else_statement(s)  
    执行过程:首先判断expression1是否为真,若为真则执行if_statement(s)语句块,若为假则判断elif语句中的expression2是否为真,若expression2为真则执行elif_statement1(s),
    为假则继续判断expression3表达式是否为真,若为真则执行elif_statement2(s)语句块,若为假则继续判断elif中的表达式直到最后一个elif中的表达式,若仍为假则执行else_statement(s)语句块。
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_elif_else_statement.py
     var1 = 1
     var2 = 2
     var3 = 3
     if var1:
        print 'if语句块被执行'
        print var1
     elif var2:
        print 'elif语句块被执行1'
        print var2
     elif var3:
        print 'elif语句块被执行2'
        print var3
     else:
        print 'else语句块被执行'
     print 'if语句外的语句被执行'
     
    执行结果:
        if语句块被执行
        1
        if语句外的语句被执行
        
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_elif_else_statement.py
     var1 = 0
     var2 = 2
     var3 = 3
     if var1:
        print 'if语句块被执行'
        print var1
     elif var2:
        print 'elif语句块被执行1'
        print var2
     elif var3:
        print 'elif语句块被执行2'
        print var3
     else:
        print 'else语句块被执行'
     print 'if语句外的语句被执行'
    执行结果:
        elif语句块被执行1
        2
        if语句外的语句被执行
        
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_elif_else_statement.py
     var1 = 0
     var2 = None
     var3 = 3
     if var1:
        print 'if语句块被执行'
        print var1
     elif var2:
        print 'elif语句块被执行1'
        print var2
     elif var3:
        print 'elif语句块被执行2'
        print var3
     else:
        print 'else语句块被执行'
     print 'if语句外的语句被执行'
    执行结果:
        elif语句块被执行2
        3
        if语句外的语句被执行
        
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:if_elif_else_statement.py
     var1 = 0
     var2 = None
     var3 = 0
     if var1:
        print 'if语句块被执行'
        print var1
     elif var2:
        print 'elif语句块被执行1'
        print var2
     elif var3:
        print 'elif语句块被执行2'
        print var3
     else:
        print 'else语句块被执行'
     print 'if语句外的语句被执行'
    执行结果:
        else语句块被执行
        if语句外的语句被执行
        
    3、if... elif... else结构可能嵌套的语法:
    if expression1:
        statement(s) 
        if expression2:
            statement(s)
        elif expression3:
            statement(s)
        else:
            statement(s) 
    elif expression4:
        statement(s)
    else:
        statement(s)
        
二、for语句(计数循环)
    在Python中for循环与c或c++里中的for有根本的区别,Python的for循环主要是采用遍历可迭代对象的方式进行循环,可迭代对象如列表、元组、字符串以及range()函数生成的列表对象。
    for循环语句的语法形式:
    for iter_var in sequence:
        statement(s)
    执行过程:用迭代变量iter_var去迭代sequence中的每一个元素的值,迭代变量每取一次sequence中的元素执行一次statement语句块,直到整个sequence对象元素被迭代耗尽。
    for循环迭代遍历有两种方式:值遍历和索引遍历(即序列本身的偏移指数)
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:for_statement.py
     '''采用值遍历'''
     alist = ['allen', 'jack', 'maco']
     for iter in alist:
         print iter
         
    执行结果:
        allen
        jack
        maco
        
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:for_statement.py
     '''采用索引遍历'''
     alist = ['allen', 'jack', 'maco']
     for iter in range(len(alist)):
         print alist[iter]
         
    执行结果:
        allen
        jack
        maco  


三、while循环(条件循环)
    while语句当循环条件为真时,重复不断循环执行一段代码,直到条件为假时结束循环。
    while循环语法形式:
    while expression:
        while_statement(s)
    执行过程:若expression表达式为真,循环执行while_statement(s)语句块,直到expression表达式为假结束while循环。
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:while_statement.py
     num = 0
     while 0<9:
         print 'the num is:',num
         num += 1
     print 'while循环结束'
    执行结果:
        the num is:0 
        ...
        the num is:8
        while循环结束


    while无限循环:
    当while的条件表达式永远为真的时候,while中的代码块会无限制地循环执行,必要时使客户端程序可以与它沟通(比如改变循环条件终止循环)。
    例子:
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     var = True
     while var:
         user_var = raw_input('输入False退出循环:')
         var = user_var
    
    while循环的单个语句组:
    while expression:statement
    
四、循环中的break与continue语句(控制循环)
    一般来说我们可以使用break和continue语句来改变控制流程,当break语句在循环语句中执行时它会立即跳出循环转而执行while循环后面的语句。当continue语句在循环中执行时它会结束本次循环重新开始下一轮循环。
    1、break语句
    执行程序代码遇到break语句结束循环,在for或while循环语句块中的break语句后面的语句不执行。    
    例子:
        我们依次输出列表中的元素,遇到'jack'的时结束循环:
     a、for循环中的break语句
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:for_break.py
     alist = ['allen', 'maco', 'jack', 'mali']
     for item in alist:
         if item == 'jack':
             break
         print item 
    执行结果:
        allen
        maco
     b、while循环中的break语句
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:while_break.py
     i = 0
     while i < 5:
         if i == 3:
             break
         print item 
    执行结果:
        0
        1
        2        
    2、continue语句
    执行代码遇到continue语句时结束本次循环重新开始下一轮循环,也就是说循环体中在continue语句之后的所有语句继续下一轮循环。对于while语句,执行continue语句后会立即检测循环条件;对于for语句,执行
    continue语句后并没有立即检测循环条件,而是先将可遍历对象的下一个元素赋给控制变量,然后再检测循环条件。
    例子:
     a、for循环中的continue语句
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:for_continue.py
     alist = ['allen', 'maco', 'jack', 'mali']
     for item in alist:
         if item == 'jack':
             continue
         print item 
    执行结果:
        allen
        maco
        mali
     b、while循环中的continue语句
     #!/usr/bin/env python
     # -*- encoding:utf-8 -*-
     # file_name:while_continue.py
     i = 0
     while i < 5:
         if i == 3:
             continue
         print item 
    执行结果:
        0
        1
        2 
        4


五、for和while循环中的else子句
    和c或c++中的for语句和while语句相比,Python语言中的两种循环有一个很大的不同之处,那就是Python语言中的循环语句可以带一个else子句。
    1、for循环语句块带else子句形式
    for 控制变量 in 可迭代对象:
        循环体
    else:
        语句块
        
    2、while循环语句块带else子句形式
    wile 表达式:
        循环体
    else:
        语句块
        
    如果for循环带else子句时,for语句循环体在整个遍历所有元素过程中没有遇到break语句(循环体没有break语句或break语句不被执行)或没有遇到异常退出,那么
    循环体结束后else子句中的语句块就会被执行,否则else语句块不被执行,for循环整个流程结束。与for类似的while循环中的else子句在未执行break语句或没有遇到异常退出时被执行
    否则else子句不被执行。continue语句对else子句有没有影响呢?continue语句对else子句的执行与否没有影响,continue语句只结束了本轮循环而没有完全退出循环结构(else子句是for循环或while循环的一部分)。
    总之,只要循环体中执行了break语句,那么循环结构中的else子句就不会执行,只有循环体正常退出时,才会执行else子句。
    
六、pass语句
    pass语句在代码中起到占位的作用,表示一个空语句组,意思是什么都不做。假如现在在这个语句块不想添加功能,但在以后可能会添加功能,那么我就可以使用pass语句来占位。