本章内容主要包括:
- 声明函数
- 调用自定义函数
- 变量作用域
- 各种类型的函数参数应用
- 使用lambda建立匿名函数
- Python其他常用内建函数
1、使用函数
1.1 声明函数
在python中,函数必须先声明,然后才能调用它,使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成响应的功能或者获得函数返回的处理结果。
在python中使用def声明一个函数,声明函数的一般形式如下:
def <函数名> (参数列表):
<函数语句>
return <返回值>
其中,参数列表和返回值不是必须的,return后也可以不跟返回值,甚至连return也可以没有,对于没有return的函数都会返回None值。
def hello(): #函数名为hello,无参数
print('你好,Python!') #缩进的语句,表示函数内的语句,无return,返回None
python声明一个函数不需要声明函数的返回值类型,也不需要声明参数的类型。
def tpl_sum ( T ): #求一个元组中所有数之和的功能
result = 0
for i in T:
result += i
return result
1.2 调用函数
要调用指定的函数就在语句中使用函数名,并且在函数名之后用圆括号将调用参数括起来:
def hello(): #声明函数,无参数也需写括号
print('你好,Python!')
hello() #调用函数,无参数也需写括号
2、 深入函数
2.1 默认值
声明一个参数具有默认值的函数形式如下:
def hello(name='python'):
print('你好,%s!' % name)
print('无参数调用时输出:')
hello()
print('有参数调用时输出:')
hello('Jonson')
2.2 参数传递
python中参数值的传递是按照声明函数时参数的位置顺序进行传递的,即位置参数;python还支持按照参数名传递值的方法。
def mult(a,b,c):
return a*b*c
mult(2,3,4)
当自定义函数时,如果参数前加上一个星号“*”,则表示该参数是一个可变长参数,调用该函数时,如果依次将所有的其他变量都赋予值之后,剩下的参数将会收集在一个元组中,元组的名称就是前面带星号的参数名。
def change_para(*tp1):
print(type(tp1))
print(tp1)
change_para(1)
change_para(1,2,3)
3、变量的作用域
python中,作用域可以分为以下这些:
- 内置作用域:python预先定义的;
- 全局作用域:所编写的整个程序;
- 局部作用域:某个函数内部范围。
下边为在函数内外都有一个同一个名称的变量而不影响:
def myfun():
a = 0 #函数内声明并初始化变量a为整数
a += 3 #修改a的值
print('函数内a:',a) #输出函数内a的值
a='external' #全局作用域内a声明并初始化
print('全局作用域a:',a)
myfun() #调用函数
print('全局作用域a:',a)
如果要在函数内部使用全局变量,可以使用:
def myfun():
global a #增加此语句!
a = 0 #函数内声明并初始化变量a为整数
a += 3 #修改a的值
print('函数内a:',a) #输出函数内a的值
a='external' #全局作用域内a声明并初始化
print('全局作用域a:',a)
myfun() #调用函数
print('全局作用域a:',a)
4、使用匿名函数(lambda)
lambda可以创建匿名函数,也可以将匿名函数赋给一个变量供调用,它是python中一类比较特殊的声明函数的方式,语法形式如下:
lambda params:expr
5、Python常用内建函数
python中没有导入任何模块或包时,python运行时提供的函数称为内建函数,如下表所示:
第五天完。