函数
函数定义与使用以及函数的调用
- def关键字,依次写出函数名、括号、括号中的参数和冒号:
- 在缩进块中编写函数体,函数的返回值用return语句返回。
pass
return
调用
python内置了很多有用的函数,我们可以直接调用:
- abs ( )
- cmp ( )
- 数据类型转换函数: int( ),float( ),str( ),unicode( ),bool( )
1,无参数的函数;
def hello():#定义函数,并不执行;
print(“hi”)#函数体
hello() #调用函数
理解函数名以及函数与函数的参数
- 函数名与变量名类似,其实就是指向一个函数对象的引用;
- 给这个函数起了一个‘’别名‘’:函数名赋给一个变量 #比如常用的print函数就可赋给一个变量,执行效果相同
空函数
- 定义一个什么事也不做的空函数,可以用pass语句;
- pass可以用来作为占位符,还没想好怎么写函数的代码。就可以先放一个pass,让代码能运行起来
def Myname(): pass
参数检查
- 调用函数时,如果参数个数不对,python解释器会自动检查出来,并抛出 TypeError;
- 如果参数类型不对,python解释器就无法帮我们检查;
- 数据类型检查可以用内置函数isinstance实现
def fun(name): #定义函数时变量称为形式参数,变量名可以随意;
print("hello %s" %(name))
fun("swag")#调用函数时参数称为实参。该参数必须实际存在;name = swag
函数返回值
- 函数返回值用return关键字;
- 返回一个tuple可以省略括号;
- python的函数返回值有多个时其实就是返回一个tuple
- 函数执行完毕也没有return语句时,自动return None
函数参数
- 默认参数可以降低调用函数的难度;*有多个参数时,变化大的放前面,变化小的放后面;*必选参数在前,默认参数在后
- 可变参数 *就是传入的参数个数是可变的,可以是一个两个到任意个,还可以是0个
*args
扫描二维码关注公众号,回复:
279464 查看本文章
如果已经有有一个list或者tuple,要调用一个可变参数:
-python允许你在list或tuple前面加一个*号;
-把list或tuple的元素变成可变参数传进去;
largs = [1,2,3] func(largs[0],largs[1],largs[2]) func(*largs)
关键字参数
- 关键字参数允许你传入0个或人一个含参数名的参数;
- 这些关键字参数在函数内部自动组装为一个dict;
关键字参数用**kwargs
参数组合
- 参数组合是指可以必选参数,默认参数,可变参数和关键字参数一起使用;
- 参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
参数总结
- 必选参数
- 默认参数:默认参数一定要用不可变对象
- 可变参数:*args是可变参数,args接受的是一个tuple
- 关键字参数:**kw是关键字参数,kw接受的是一个dict
- 对于任意函数,都可以通过类似func(*args,**kw)的形式调用它
变量的作用域
- 局部变量:只能在函数内部使用的变量
- 全局变量:在整个程序中使用的变量
- global关键字:强制将局部变量转换为全局变量