首页 > 代码库 > (14)python函数与变量

(14)python函数与变量

1.函数介绍:

编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有相应的结果(输出)。编程语言中的函数有输入,不一定会返回结果。

编程语言中的函数其实就是一个用于完成某个特定功能的相关代码的代码段 。

编程语言中的函数的作用就是实现代码的可重用性,提高代码可维护性、扩展性和可读性。

2.Python中定义函数的语法:

def 函数名称( 参数 ):
    """
    函数使用说明、参数介绍等文档信息
    """
    代码块
    return [表达式]
 

实例:

def func1():
  ‘‘‘testing‘‘‘
print(‘in the func1‘),
return 0

3.函数的调用

def func2(x,y,z):
    print(x)
    print(y)
    print(z)
test(1,2,3)       

4.函数参数说明

①形参:即形式参数,函数定义时指定的可以接受的参数即为形参,比如上面定义的add(a, b)函数中的a和b就是形参;

②实参:即实际参数,调用函数时传递给函数参数的实际值即为实参,比如上面都用add(1, 9)函数中的1和9就是实参;

③位置参数:顾名思义是和参数的顺序位置和数量有关的。函数调用时,实参的位置和个数要与形参对应,不然会报错。

例:两个位置参数

def func3(name, age):
    print(NAME: %s % name)
    print(AGE: %d % age)
func3(peng,25)      #正确调用
func3(25,peng)      #错误调用
func3(peng,26,27)   #参数数量错误

④默认参数

def func4(name, age=20):
    print(NAME: %s % name)
    print(AGE: %d % age)

func4(peng)     #正确调用:有默认参数,调用函数的时候,默认函数非必须传递
func4(peng,25)  #正确调用,age取新值
func4(30)         #注意:此时值传给了name,并非传给age

⑤可变长参数

可变(长)参数:顾名思义,是指长度可以改变的参数。通俗点来讲就是,可以传任意个参数(包括0个)。

可变(长)参数的应用场景:通常在写一个需要对外提供服务的方法时,为了避免将来添加或减少什么新的参数使得所有调用该方法的代码点都要进行修改的情况发生,此时就可以用一个可变长的形式参数。

#*args:接收n个位置参数,转换成元组方式

def func5(*args):
print(args)
func5(1,2,3,4,5,5)
func5(*[1,2,4,5,6]) #args=tuple([1,2,4,5,6])

def func6(x,*args):
    print(x)
    print(args)
func6(1,2,3,4,5,6,7,8,9)

⑥关键字参数

顾名思义,是指调用函数时通过关键字来指定是为哪个形参指定的实参,如name="Tom", age=10,x=6等等

def func7(x,y,z):
    print(x)
    print(y)
    print(z)
func7(1,2,3)        #正确调用:与形参一一对应
func7(y=2,x=3,z=5)  #正确调用:与关键字参数顺序无关
func7(1,3,y=3)      #报错:positional argument follows keyword argument
func7(1,y=3,6)      #报错:positional argument follows keyword argument
func7(1,x=3,y=6)    #报错:func7() got multiple values for argument ‘x‘
func7(1,z=3,y=6)    #正确调用
func7(z=3,y=6,7)    #报错:positional argument follows keyword argument

⑦n个关键字参数

#**kwargs:把多个关键参数转化为字典的方式
def func8(**kwargs):
    print(kwargs)          #返回:{‘age‘: 18, ‘name‘: ‘peng‘, ‘sex‘: ‘F‘}
    print(kwargs[name])
    print(kwargs[age])
    print(kwargs[sex])
func8(name =peng,age =18,sex =F)

def func9(name,**kwargs):
    print(name)
    print(kwargs)         #返回:{‘age‘: 18, ‘sex‘: ‘F‘}
func9(peng,age=18,sex=F)

 

(14)python函数与变量