归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗!
目录
一、函数的定义和调用:
1.函数的定义
2.函数的调用
3. 函数的嵌套
二、函数的参数和返回值:
1.函数的参数
2.默认参数
3.可变参数
4.用户的返回值
5.lambda函数
三、Python 的内置函数:
1.数学运算函数
2.字符串运算函数
3.转换函数
4. 序列操作函数
在计算机语言中,函数是实现某一特定功能的语句集合。函数可以重复使用,提高了代码的可重用性;函数通常实现较为单一的功能,提高了程序的独立性;同一个函数,通过接收不同的参数,实现不同的功能,提高了程序的适应性。Python提供了很多内置函数,用户也可以定义和使用自己的函数。
一、函数的定义和调用:
1.函数的定义
在 Python 中定义函数要使用def关键字,其语法格式如下:
def funcname(paras):
statements
return [expression]
关于函数定义说明如下
函数定义以 def关键字开头,后接函数名称和圆括号()。
paras 是函数的参数,放在函数名后面的圆括号内,参数之间用逗号分隔。
statements是函数体,函数体的前部可以选择性地使用字符串,用于说明函数功能
函数声明以冒号结束,函数体内需要缩进。
return 语句用于结束函数,将返回值传递给调用语句。不带表达式的return 返回 None 值
需要说明的是,如果函数的参数是多个,默认情况下,函数调用时,传人的参数和函数定义
时参数定义的顺序是一致的。
2.函数的调用
函数通过函数名加上一组圆括号来调用,参数放在圆括号内,多个参数之间用逗号分隔。需要注意的是,Pyton 中的所有语句都是解释执行的,def也是一条可执行语句,使用函数时,要求函数的调用必须在函数定义之后。另外,在 Python 中,函数名也是一个变量,如果 return 语句没有返回值,则函数值为 None.
3. 函数的嵌套
函数的嵌套可以从嵌套定义和嵌套调用两方面理解,但通常情况下,嵌套是指函数的嵌套定义。
函数的嵌套定义指的是在函数内部定义的函数,但内嵌的函数只能在该函数内部使用,闭包应用了函数的嵌套定义。
函数的嵌套调用是指在一个函数的内部调用其他函数的过程。嵌套调用是模块化程序设计的基础,合理划分不同的函数,有利于实现程序的模块化。
二、函数的参数和返回值:
1.函数的参数
在定义函数时,参数表中的参数称为形式参数,也称形参。调用函数时,参数表中提供的参数称为实际参数,也称实参。Python中的变量保存的是对象的引用,调用函数的过程就是将实参传递给形参的过程。函数调用时,实参可分为位置参数和赋值参数两种情况。
函数调用时,默认情况下,实参将按照位置顺序传递给形参。
通常情况下,函数调用时,实参默认采用按照位置顺序的方式传递函数。如果参数很多,按位置传递参数的方式可读性较差。
参数值的类型是指函数调用时,传递的实际参数是基本数据类型还是组合数据类型。参数类型不同,在函数调用后,参数值的变化也是不同的。
基本数据类型的变量在函数体外,是全局变量,作为实际参数时,是将常量或变量的值传递给形参,是一种值传递的过程,实参和形参是两个独立不相关的变量,因此,实参值一般是不会改变的。
列表、元组、字典等组合数据类型的变量用作函数参数时,这些变量在函数体外,是全局量。形参和实参之间传递的只是组合数据类型变量的地址(引用),如果在函数内部修改了参数的值,参数的地址是不发生改变的,这种修改将影响到外部的全局变量。
2.默认参数
定义函数时,可以给函数的形式参数设置默认值,这种参数被称为默认参数。当调用函数的时候,由于默认参数在定义时已被赋值了,所以可以直接忽略,而其他参数是必须要传人值的。
如果默认参数没有传人值,则直接使用默认值;如果默认参数传入了值,则使用传人的新值替代。
3.可变参数
在 Python 的函数中,可以定义可变参数。可变参数指的是在函数定义时,该函数可以接受任意个数的参数,参数的个数可能是1个或多个,也可能是0个。可变参数有两种形式,参数名称前加星号(*)或者加两个星号(**)。定义可变参数的函数语法格式如下:
def funname(formal_args,*args,**kwargs)
在上面的函数定义中,formal args 为定义的传统参数,代表一组参数,*args 和**kwargs 为可变参数。函数传入的参数个数会优先匹配 formal args参数的个数,*args 以元组的形式保存多余的参数,**kwargs 以字典的形式保存带有指定名称形式的参数,这种参数也称为关键字参数。
调用函数的时候,如果传入的参数个数和 formal args 参数的个数相同,可变参数会返回空的元组或字典;如果传入参数的个数比 formal args 参数的个数多,可以分为如下两种情况:如果传入的参数没有指定名称,那么*args会以元组的形式存放这些多余的参数;如果传入的参数指定了名称,如score=90,那么**kwargs 会以字典的形式存放这些被命名的参数。
4.用户的返回值
用户可以为函数指定返回值,返回值可以是任意数据类型,return[expression]语句用于退出函数、将表达式值作为返回值传递给调用方。不带参数值的retum语句返回None。
5.lambda函数
lambda 函数是 Python中的匿名函数,该函数实质上是一个lambda 表达式,是不需要使用 def关键字定义的函数,lambda函数的语法格式如下
lambda parameters:expression
其中,parameters是可选的参数表,通常是用逗号分隔的变量或表达式,即位置参数。expression是函数表达式,该表达式中不能包含分支或循环语句。expression 表达式的值将会作为lambda 函数的返回值。
lambda 函数的应用场景是定义简单的、能在一行内表示的函数,返回一个函数类型。Python 提供了很多函数式编程的特性,例如 map、reduce、fiter、sorted 等函数都支持函数作为参数,lambda 函数也可以很方便地应用在函数式编程中。
三、Python 的内置函数:
1.数学运算函数
与数学运算相关的常用 Python 内置函数如表 6.1所示
2.字符串运算函数
字符串作为一种最常用的数据类型,它提供了大小写转换、查找替换、拆分合并等函数
3.转换函数
转换函数主要用于不同数据类型之间的转换,常见的内置转换函数如表 6.2所示。
4. 序列操作函数
序列作为一种重要的数据结构,包括字符串、列表、元组等,表6.3中的函数主要针对列表元组两种数据结构。