Python函数

函数:是组织好的可重复使用的,用来实现特定功能的代码段

为什么随时都可以使用len()统计长度?

因为,len()是Python内置的函数:

1,提前写好的

2,可以重复使用的

3,实现统计长度这一特定功能的代码段

之前学过的:input(),print(),str(),int()等都是Python的内置函数

案例需求:不适用内置函数len(),完成字符串长度的计算

不使用函数

使用函数

使用函数的好处:

1,将功能封装在函数里,可以随时重复利用

2,提高代码的复用性,减少重复代码,提高开发效率

函数的定义


def 函数名(传入参数):

      函数体

      return 返回值


注意:定义了函数之后,一定要调用函数

函数的调用:函数名(参数)

注意事项:

1,参数如不需要,可以省略

2,返回值如不需要,可以省略

3,函数必须先定义后使用

练习案例:自动查核酸

定义一个函数,函数名任意,要求调用函数后可以输出如下欢迎语:

欢迎来到黑马程序员!

请出示您的健康码以及72小时核酸证明!

\n可以使同一行的语句分行

函数的传入参数

传入参数的功能:在函数进行计算的时候,接收外部(调用时)提供的数据

基于函数的定义语法:

有如下用于计算两数相加的函数:

但是这个函数的功能非常有限,只能计算1+2

但是如下函数可以计算用户指定的两数相加

语法解析:

1,函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数

* 参数之间使用逗号进行分隔

2,函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

* 传入的时候,按照顺序传入数据,使用逗号分隔

注意:传入参数的数量是不受限制的

* 可以不使用参数

* 也可以仅使用任意N个参数

练习案例:升级版自动查核酸

定义一个函数,名称任意,并接受一个参数传入(数字类型,表示体温)

在函数内进行体温判断(正常范围:小于等于37.5度),并输出如下内容:


欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!

体温测量中,您的体温是:37.3度,体温正常请进!


欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!

体温测量中,您的体温是:39.3度,需要隔离!


函数返回值

程序中的返回值:

如图代码,定义两数相加的函数功能。完成功能后,会将相加的结果返回给函数调用者。

所以,变量r接收到了函数的的执行结果

所谓的“返回值”,就是程序中函数完成事情后,最后给调用者的结果

注意:return后面的代码都不会执行,如上图的“我完事了”就不会执行

None类型

函数即使没有使用return语句返回数据,也有返回值

Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'>

无返回值的函数,实际上返回了:None这个字面量

那么None是什么意思呢?

None表示空的,无实际意义的意思

函数返回的None,就表示,这个函数没有返回声明有意义的的内容也就是返回了空的意思

None可以主动使用return返回,效果等同于不写return语句:

* 无return语句的函数返回值

* 主动返回None的函数

None类型的应用场景

None作为一个特殊的字面量,用于表示:空,无意义,其有非常多的应用场景

1,用在函数无返回值上

2,用在if 判断上

* 在if判断中,None等同于False

*一般用于在函数中主动返回None,配合if判断做相关处理

3,用于声明无内容的变量上

* 定义变量,但暂时不需要变量有具体值,可以用None来代替

函数的说明文档

函数是纯代码语言,一行行去理解代码,效率低下

可以给函数添加说明文档,辅助理解函数的作用

通过多行注释的形式,对函数进行解释说明

* 内容应写在函数体之前

* :param用于解释参数

* :return用于解释返回值

在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档

函数的嵌套调用:在一个函数里面又调用了另外一个函数

执行过程:

如果在函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕后才会回到上次函数A执行的位置

变量的作用域:变量的作用范围(变量在哪里可用,在哪里不可用)

主要分为两类:局部变量全局变量

所谓局部变量,就是定义在函数体内部的变量,即只在函数体内部生效

变量a是定义在testA函数内部的变量,在函数外部访问则会立即报错

全局变量:指的是在函数体内,外部都能生效的变量

如果有一个数据,在函数A和函数B中都要使用,则需将这个数据存储在一个全局变量里

global关键字

要将testB函数修改为变量num的值为200,该怎么修改程序?

testB函数内部的num = 200是定义了一个局部变量

在函数内修改全局变量

外面的值没有发生改变,还是200

global关键字,在函数内声明变量为全局变量

外面的值发生改变了,变成500了

综合案例:黑马ATM

1,定义一个全局变量:money,用来记录银行卡余额(默认5000000)

2,定义一个局部变量:name,用来记录客户姓名(启动程序时输入)

3,定义如下的函数:

* 查询余额函数

* 存款函数

* 取款函数

* 主菜单函数

4,要求:

* 程序启动后要求输入客户姓名

* 查询余额,存款,取款后都会返回主菜单

* 存款,取款后,都应显示一下当前余额

* 客户选择退出或输入错误,程序会退出,否则一直运行

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐