流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控制,这里面体现了一种传统编程中的“因果关系”,也就是有什么样的因就产生什么样的果,有什么输入就会有相应的输出,同一个输入不管执行多少次必然得到同样的输出,所有的都是确定的、可控的
-
伪代码
伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 通俗简单地讲,就是用中文把你的程序先写出来,在检查过伪代码没有问题后,再用Python等语言将其真正实现。例如
------------伪代码-------------------
输入一个变量age
将输入字符串转换为数字
(条件判断:)
如果age大于等于18:
打印“成人”
如果age小于18,又分两种情况:
如果age大于等于12:
打印“少年”
如果age小于12:
打印“儿童”
------------代码实现---------------
age = input("请输入你的年龄: ")
age = int(age)
if age >= 18:
print("成年")
else:
if age >= 12:
print("少年")
else:
print("儿童")
顺序执行
Python代码在执行过程中,遵循下面的基本原则:
- 普通语句,直接执行;
- 碰到函数,将函数体载入内存,并不直接执行
- 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
- 碰到if、for等控制语句,按相应控制流程执行
- 碰到@,break,continue等,按规定语法执行
- 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码
if __name__ == '__main__':
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。举例说明如下:
- 直接执行
直接执行test.py 文件,可以看到 if __name__ == '__main__': 后面的语句会被执行到
- import 执行
import 导入执行,只输入 if __name__ == '__main__': 上面的语句,而后面的语句没有被执行到
if __name__ == '__main__':的运行原理
每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)
而 “__main__” 始终指当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == '__main__' 结果为真,就会执行 if __name__ == '__main__'后面的代码,当模块被带入到其他模块去执行的时候 __name__ 等于模块名称,__name__=='__main__' 结果为假,就不执行if __name__ == '__main__'后面的代码