Python_自定义函数_使用_运行流程

一,自定义函数

Python有自带的函数,而自己定义新的函数也是可以的。

函数定义要指定这个新函数的名字,还需要一系列语句放到这个函数里面,当调用这个函数的时候,就会运行这些语句了。

>>> def print_new():

...     print('I am ok')

...     print('I am very fine')

...                                        #交互模式必须要多敲一行空格,Python才知道赋值结束。

>>>

这里的def就是一个关键词,意思是这是在定义一个函数。

函数的名字就是print_new,函数的命名规则和变量命名规则基本差不多,都是字幕梳子或者下划线,但是不能用数字打头。另外也不能用关键词做函数名,还要注意尽量避免函数名和变量名发生重复。

函数名后面的括号是空的,意思是这个函数不需要参数。

语法:函数定义的第一行叫做头部,剩下的叫做函数体。函数头部的末尾必须有一个冒号,函数体必须是相对函数头部有缩进的,

距离行首相对于函数头要有四个空格的距离,留意上面的示例中print前面是有空格的。函数体可以有任意长度的语句。注意:缩进是Python最强制的要求,这个很重要。

在打印语句中,要打印的字符串需要用双引号或单引号括着。单引号和双引号效果一样,除非是字符串中已经出现了单引号,一般都用单引号。

定义函数会创建一个函数类的对象,有type函数。

>>> type(print_new)

<class 'function'>

调用新函数的语法和调用内置函数是一样的,直接打印函数名:

>>> print_new()

I am ok

I am very fine

一旦定义了一个函数,就可以在其它函数里面来调用这个函数,比如我们写个repeat_new的函数来测试一下。

>>> def repeat_new():

...     print_new()

... 

>>> repeat_new()   #调用

I am ok

I am very fine

二,定义并使用

 整合一下前面的小块代码:

>>> def print_new():

...     print('I am ok')

...     print('I am very fine')

... 

>>> def repeat_new():

...     print_new()

... 

>>> repeat_new()

I am ok

I am very fine

这个代码块包含两个函数的定义:print_new以及repeat_new,函数定义的执行就和其他语句一样,但是效果是创建函数对象。

函数定义中的语句直到函数被调用的时候才会运行,函数的定义本身不会有任何输出。

三,运行流程

为了确保一个函数在首次被调用之前已经定义,我们必须要明白语句运行的顺序,也就是所谓"运行流程"。

一个Python程序都是从第一个语句开始运行的。从首至尾,每次运行一个语句。函数的定义并不会改变程序的运行流程,但要注意,函数体内部的语句只有在函数被调用的时候才会运行。

函数调用就像是运行流程有了绕道的行为,没有直接去执行下一个语句,运行流跳入到函数体内,运行里面的语句,然后再回来从离开的地方继续执行。

简要说,就是跳出跳入互相调用,完成整个程序的执行。

Python本身会实时追踪应该执行的位置,所以每次一个函数执行完毕了,程序都会回到当时跳出的位置,然后继续运行,等执行到了程序的末尾,就终止了。

有时候,我们要按照运行流程来读代码,才更好理解一些。

结束。

 

posted @ 2020-06-01 21:28  巴州夜雨  阅读(1219)  评论(0编辑  收藏  举报