社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

敲代码系列 | Python3的自定义函数

果汁焗酱油 • 4 年前 • 343 次点击  
Python3相关的旧笔记都在上面👆这个专辑里

本期要点:

Python中如何自定义函数。



自定义函数的规则

自定义函数的规则包括:

  • 代码块以def开头,后接自定义函数名和圆括号“()

  • 参数和自变量应当放在圆括号内

  • 函数体以冒号起始,并且缩进

  • 函数体用return+表达式结束,并返回一个值,return不带表达式相当于返回None

自定义函数定义后,就可以像内置函数一样进行调用。例如:

emmm...酱油君把Give写成了Five,莫非是想运行之前先来个Give me Five?



函数的参数类型

在调用函数时,使用的参数类型有4种,分别是必需参数、关键字参数、默认参数、不定长参数


1. 必需参数

函数调用时的参数必需与声明时的参数一样。如果没有输入参数,或输入了多个数,都会在Shell或者File页面显示报错信息。


2. 关键字参数

调用函数时,允许函数调用时参数的顺序与声明时不一致,因为Python解释器能用参数名匹配参数值

例如,在第一次调用时,是按照参数声明顺序的,没有使用参数名;在第二次调用时,没有按照参数声明顺序,而是使用了参数名。两次调用输入的结果是一样的。第三次调用时,没有输入任何参数名或参数值,在Shell页面显示了报错信息。


3. 默认参数

在调用函数时,如果没有传递参数,就会使用默认的参数。需要注意的是,在圆括号中定义参数时,默认参数必须放在最后,否则Python会在File中报错。

例如,在第一次调用函数时,按照函数声明的参数名顺序直接给出了参数值;在第二次调用时,通过关键字给出了参数值;第三次调用时,没有给出性别和部门的参数值,于是程序输出了默认的性别为男、部门为研发部门的值。


4. 不定长参数

当函数需要处理比声明时更多的参数,就需要用到不定长参数。不定长参数在声明时不会命名。在必需参数之后,加一个星号*的参数会以元组(tuple)的形式存放所有未命名的变量参数。加两个星号**的参数会以字典的形式存放所有未命名的变量参数。

例如,设置name为必需参数,以一个星号*声明tup1,以元组的形式存放可变参数。


函数的参数更改

函数中的变量是没有类型的,但是它对应的对象是有类型的。例如,变量x可以被赋值为字符串(x='abcdefg'),也可以被赋值为一个列表(x=[a,b,c,d,e,f,g])。变量x仅仅是一个指针,一个对象的引用。变量x可以指向任何类型的对象。


1. 不可更改对象

在Python中,字符串、元组和数值型是不可更改的对象。即,在自定义函数进行更改并调用后,仍然维持原来的值。

例如,在下面的代码中,b的初始值是2,在自定义函数Change中会将b重新赋值为3。函数调用结束后,输入b的值,仍然是2。


2. 可更改对象

在Python中,列表、字典是可以更改的对象。即,在自定义函数进行更改并调用后,仍然维持原来的值。

例如,在下面的代码中,b的初始值是[200,300,600],在自定义函数Change中会利用append方法将b增加一个列表项1000。函数调用结束后,输入b的值,变成了[200,300,600,1000]。 



匿名函数

匿名函数不需要使用def语句加函数名的形式来定义函数,而是使用lambda 来创建匿名函数。lambda的主体是一个表达式,而不是代码块,因此只能封装比较简单的逻辑,且不能够访问自己参数列表之外或者全局命名空间里的参数。

lambda函数只包含一个语句,具体为:lambda arg1,arg2,...,argn:expression
例如,如下的lambda函数,同样实现了求正弦和余弦之和的平方:


🚩🚩🚩
敲代码系列下期:Python3的面向对象概念

📂 Python3自学笔记

Python3的数值类型、变量与赋值

Python3的运算

Python3的IF语句和代码格式

Python3的循环语句

Python3的特征数据类型

Python3的数值函数和字符串函数

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99979
 
343 次点击