python基础语法——函数

把具有独立功能的代码块组织为一个小模块,这就是函数

函数的文档说明用三引号括起来

定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数

一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处

当函数返回值有多个时,默认为元祖格式

在形参中默认有值的参数,称之为缺省参数

注意:带有默认值的参数即缺省参数后面只能为空或者是缺省参数或者**kwargs

# 不定长参数之元组和缺省参数的位置可以调换

# 定义函数的时候 如果函数的参数为不定长参数之字典 必须放在函数的最末端

如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面,但如果有**kwargs的话,**kwargs必须是最后的

字典进行拆包,取出来的是key,而不是键值对

Python中函数参数是引用传递 注意不是值传递

python的内置高阶函数map()映射

map(func, iterable,...)  第一个参数为函数,后面参数为可迭代序列(一般为列表),函数的意义为将列表中的每个元素调用func函数,并返回一个新的列表(python2返回列表,python3返回迭代器,)对原有列表并不产生影响

abs取绝对值

# 注意:sort是list的方法,改变list对象的顺序,无返回值,修改列表本身;
# 而sorted是python的内置方法,使用于任何可迭代对象,返回一个新的列表,不影响原来的列表

对于不可变类型,因变量不能修改,所以运算不会影响到变量自身

而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量

可变类型有: 列表、字典、集合

不可变类型有: 数字、字符串、元组

关键字参数调用函数时,不需关注形参的顺序,

在调用函数时,使用关键字方式调用,我们只需要注意形参名字正确


========================================================================


注意:

在调用函数时,如果需要把一些数据一起传递过去,被调用函数就需要用参数来接收

参数列表中变量的个数根据实际传递的数据的多少来确定

有参数、有返回值

函数名不能重复

如果在同一个程序中出现了多个相同函数名的函数,那么在调用函数时就会出现问题,所以要避免名字相同

还有一点 不仅要避免函数名之间不能相同,还要避免 变量名和函数名相同的,否则都会出现问题

不定长参数之元祖*args本身为一个缺省参数(即默认为空的元祖),不定长参数之字典**kwargs必须放在最后

2. 调用函数

调用的方式为:

函数名([实参列表])

如果调用的函数 在定义时有形参,那么在调用的时候就应该传递参数

调用时,实参的个数和先后顺序应该和定义函数中要求的一致

如果调用的函数有返回值,那么就可以用一个变量来进行保存这个值

拆包时,变量元素要一一对应,(位置和数量)

要在函数内部修改全局变量时,需要使用global声明

 

 

3. 作用域

在一个函数中定义的变量,只能在本函数中用(局部变量)

在函数外定义的变量,可以在所有的函数中使用(全局变量)

 

使用递归函数时,必须有停止递归的条件(和循环中必须要有跳出循环的条件)

lambda关键词能创建小型匿名函数。

lambda函数的语法只包含一个语句,如下:

lambda [arg1[,arg2,.....argn]]:expression

Lambda函数能接收任何数量的参数但只能返回一个表达式的值

格式: 需要自定义排序的列表名.sort(key=lambda 元素临时变量名:变量名[key])

匿名函数不能直接调用print,因为lambda需要一个表达式

函数中return 和 pass 与循环中的break和continue一一对应

对于可变数据类型,b+=b  ====等价于 b.extend.b

列表也是支持切片的


猜你喜欢

转载自blog.csdn.net/qq_36893938/article/details/80996558