欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python语言基础之函数总结

程序员文章站 2024-03-26 11:03:11
...

1、函数

1、认识函数

1)定义:函数就是对实现某一特定功能代码的封装;
2)函数的分类
a.系统函数(系统造好的机器) -  由python创建好的函数,例如:print,input,type,max,min,id.....
b.自定义函数(自己早机器)  -  由程序员自己创建的函数

2、函数的定义

语法:
def 函数名(形参列表):
	函数说明文档
	函数体
说明:
a.def  -   关键字;固定写法
b.函数名  -  由程序员自己命名
            要求:是标识符,不能是关键字
            规范:1)见名知义;(看到函数名大概知道这个函数的功能是多少)
                 2)所有的字母都小写,多个单词之间用下划线隔开
                 3)不使用系统的函数名、类名和模块名
c.()   -    固定写法
d.形参列表  -  以‘变量名1,变量名2....‘格式存在,这儿的每一个变量就是一个形参,如果不需要形参,括号里边可以什么都不写
形参是用来将函数外部的数据传递到函数内部(可以理解成连接函数外部和内部的通道),需不需要形参就看实现  函数的功能需不需要额外的数据
e.  :    -    固定写法
f.  函数说明文档   -   本质就是文档注释(对函数功能进行描述)
g.函数体  -    和def保持一个缩进的一条或者多条语句(实现函数功能的代码)  

3、调用函数

1)重要结论
定义函数的时候不会执行函数体,调用数据的时候才会执行函数体(调用多少次就会执行多少次)
2)调用函数
语法:函数名(实参列表)
说明:
a.函数名 - 需要使用的函数名字(函数名必须是已经定义过的函数的函数名)
b.() - 固定写法
c.实参列表 - 多个数据用逗号隔开:数据1,数据2,…
原则上定义函数的时候有多少个形参,调用函数的时候就需要多少个实参(实参可以是任何有结果的表达式(只要不是赋值语句就可以))
3)函数调用过程:
当代码执行到函数调用表达式的时候:
第一步:回到函数定义的位置,用实参给形参赋值(传参)
第二步:执行函数体
第三步:确定函数返回值
第四步:回到函数调用的位置,接着往后执行

4、返回值 - 将函数内部的数据传递到函数外部

1)怎样将一个数据作为函数的返回值
语法:
return 需要返回的数据(需要从函数内部传递到函数外部的数据)
2)怎样在函数外部获取函数的返回值
获取函数调用表达式的值就是获取函数的返回值(也就是函数调用表达式的值就是函数的返回值)
返回值能做的事情,函数调用表达式都可以做

5、return关键字

return的作用有两个:
1)确定函数返回值(将函数内部的数据传递到函数外部)
2)提前结束函数(在执行函数体的时候,如果遇到了return,那么函数直接结束)

6、函数的参数

1)位置参数和关键字参数 - 根据实参提供的方式分的类

1)位置参数   -   直接将多个数据用逗号隔开,让实参和形参从位置上面一一对应(第一个实参给第一个形参赋值,依次往后)
2)关键字参数  -  以’形参=实参‘的形式传参
3)位置参数和关键字参数混用  -  位置参数必须在关键字参数的前面

2)参数默认值

在定义函数的时候可以通过’形参=数据’给参数赋默认值,调用函数的时候有默认值的参数可以不用传参,定义函数的时候可以只给部分参数设置默认,那么这个时候没有默认值的参数必须在有默认值的参数前面

3)参数类型说明和返回值类型说明

参数类型说明和返回值类型说明
参数类型说明:1)无默认值参数;类型名
             2)参数带默认值(默认值是什么类型,参数就是什么类型)
返回值类型说明:  -> 类型名   
def func(x:list, y='')   -> list
	pass

4)不定长参数 - 一个形参可以同时接收多个实参

1)在参数名前加*,那么这个参数就可以同时接收多个实参(必须是位置参数)
   原理:带*的参数会变成一个元组,接收到的实参会变成元组中的元素
   注意:带*号的不定长参数在传参的时候只能用位置参数
重要结论:定义函数的时候,如果参数中有一个独立的*,它的作用是让你在调用这个函数的 时候*后面的参数必须使用关键字参数
2)在参数名前加**,那么这个参数可以接收多个参数(必须是关键字参数)
原理:带**的参数会变成一个字典,接收到的参数会变成字典中的键值对
def fun(*x, y, z):
    print(f'x:{x},y:{y},z:{z}')
fun(20, 30, 10, y=50, z=90)