流程控制
一 顺序执行
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
浙公网安备 33010602011771号