流程控制

一 顺序执行

  1 if __name__ == '__main__"  #import test.py,则__name__属性的值为test;直接运行则属性值为“__main__”。区分直接运行和被导入。

  

cnblog.py

import os          # 1

print('<[1]> time module start')        # 2


class ClassOne():
    print('<[2]> ClassOne body')            # 3

    def __init__(self):                     # 10
        print('<[3]> ClassOne.__init__')

    def __del__(self):
        print('<[4]> ClassOne.__del__')     # 101

    def method_x(self):                     # 12
        print('<[5]> ClassOne.method_x')

    class ClassTwo(object):
        print('<[6]> ClassTwo body')        # 4


class ClassThree():
    print('<[7]> ClassThree body')          # 5

    def method_y(self):                     # 16
        print('<[8]> ClassThree.method_y')  


class ClassFour(ClassThree):
    print('<[9]> ClassFour body')           # 6


def func():
    print("<func> function func")

if __name__ == '__main__':                      # 7
    print('<[11]> ClassOne tests', 30 * '.')    # 8
    one = ClassOne()                            # 9
    one.method_x()                              # 11
    print('<[12]> ClassThree tests', 30 * '.')  # 13
    three = ClassThree()                        # 14
    three.method_y()                            # 15
    print('<[13]> ClassFour tests', 30 * '.')  # 17
    four = ClassFour()
    four.method_y()

print('<[14]> evaltime module end')

  运行结果:

<[1]> time module start
<[2]> ClassOne body
<[6]> ClassTwo body
<[7]> ClassThree body
<[9]> ClassFour body
<[11]> ClassOne tests ..............................
<[3]> ClassOne.__init__
<[5]> ClassOne.method_x
<[12]> ClassThree tests ..............................
<[8]> ClassThree.method_y
<[13]> ClassFour tests ..............................
<[8]> ClassThree.method_y
<[14]> evaltime module end
<[4]> ClassOne.__del__

二 循环控制:

  

>> for n in range(2,100):
...     for x in range(2,n):
...             if n % x ==0:
...                     print (n,'=',x,'*',n//x)
...                     break  #跳出内层循环。跳出当前循环,只能退出一层循环。
...     else:
...             print (n,' is zhishu')
...
2  is zhishu
3  is zhishu
4 = 2 * 2
5  is zhishu
6 = 2 * 3
7  is zhishu
8 = 2 * 4
9 = 3 * 3

  break和continue的区别:

  

#break跳出当前一层循环
>>> var = 10
>>> while var > 0:
...     print('num is:',var)
...     var -= 1
...     if var == 5:
...             break
...
num is: 10
num is: 9
num is: 8
num is: 7
num is: 6

#continue跳出当前循环剩余部分代码,提前结束本轮次循环
>>> var=10
>>> while var > 0:
...     var -= 1
...     if var == 5:
...             continue
...     print('num is :',var)
...
num is : 9
num is : 8
num is : 7
num is : 6
num is : 4
num is : 3
num is : 2
num is : 1
num is : 0

  python没有goto语法,如果跳出嵌套循环,使用flag:

  

>>> flag = False
>>> for i in range(10):
...     if flag:    #当flag被内层循环设置为True的时候,跳出外层循环
...             break
...     for j in range(10):
...             if j ==7:
...                     flag = True
...                     break
...             print (i,j)
...
0 0
0 1
0 2
0 3
0 4
0 5
0 6

 

posted on 2018-08-15 17:47  voldermorter  阅读(133)  评论(0)    收藏  举报