python函数
函数定义:
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
函数作用:
1,减少重复代码;
2,方便修改,更衣扩展
3,保持代码一致性
语法格式:
def 函数名(参数列表): 函数体
命名规则:
- 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号;
- 函数名是区分大小写的。
- 函数名不能是保留字。
参数:
形参:
形式参数,不是实际存在,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)
实参:
实际参数,调用函数时传给函数的参数,可以是常量,变量,表达式,函数,传给形参
区别:
形参是虚拟的,不占用内存空间,形参变量只有在被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
函数的参数
- 必备参数
- 关键字参数
- 默认参数
- 不定长参数
必备参数:
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
def info(name,age): print('I am %s,I am %d'%(name,age)) info('张浩',18)
关键字参数:
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
def info(name,age): print('I am %s,I am %d'%(name,age)) info(name='张浩',age=18)
缺省参数(默认参数):
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
def info(name,age,sex='male'): print('Name:%s'%name) print('age:%s'%age) print('Sex:%s'%sex) info('张浩','18')
不定长参数:
你可能需要一个函数能处理比当初声明时更多的参数。这样的参数叫做不定长参数:*args **kwargs
加了星号(*)的变量名会存放所有未命名的变量参数,*args体现args为不定长元组。而加(**)的变量名会存放命名的变量参数,**kewrgs体现为kwargs为不定长字典。
# *argsdef add(*tuples): sum=0 for a in tuples: sum += a return sum print(add(1,4,6,9)) print(add(1,4,6,9,5)) # **keargs def print_info(**kwargs): print(kwargs) for i in kwargs: print('%s:%s'%(i,kwargs[i])) return print_info(name='张浩',age=18,sex='male',hobby='girl')
函数返回值:
要想获取函数的执行结果,就可以用return语句把结果返回
注意:
- 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,也可以理解为 return 语句代表着函数的结束
- 如果未在函数中指定return,那这个函数的返回值为None
- return多个对象,解释器会把这多个对象组装成一个元组作为一个一个整体结果输出。
高阶函数:
1,函数名可以作为参数输入;
2,函数名可以作为返回值。