函数是什么?

函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的。编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

  1. 减少重复代码(重复的代码可以通过一个函数实现)
  2. 使程序变的可扩展
  3. 使程序变得易维护(修改部分功能可以通过修改函数来实现)   

 

函数的基本格式

def test(x,y,z):
    print(x)
    print(y)
    print(z)

如上,这就是在python中的基本定义方法:def 是定义函数的基本格式,test是这里的函数名,:下面的内容就是具体要实现的功能。

这个时候我们再来讨论一下函数括号里面的东西,我们叫它们为参数。像test(x,y,z)中的x,y,z我们称之为形式参数,当我们给它们赋值,比如x=1之后,1就是实际参数。

 

关于一些参数的补充:

def test(x,y,z):
    print(x)
    print(y)
    print(z)
test(1,2)#位置参数
test(y=1,x=2)#关键字参数
#test(2,y=3,6)这里是错误的,关键字参数必须写在位置参数的后面
默认参数:调用函数时,默认函数非必须传递(用于定义函数,为参数提供默认值,调用函数时可传可不传该默认参数的值)

函数的返回值:

def fun1():
    '''函数'''
    print("in the func1")
    return 0

def fun2():
    '''过程'''
    print("in the func2")

在fun1中最后一行return 0 ,所以这个函数的返回值是0

而在fun2中,我们没有写返回值,但是不代表它没有返回值,在PYTHON中此时的返回值是None。

当然我们的返回值不只是数字或者字符串,也可返回一些变量的内存地址。

 

关键字参数:

def test(name,age=22,*args,**kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)

test('周栩强',11,22,sex='man')

在这里,*args参数传入数据之后,以元组的形式保存。**kwargs则是以字典的形式保存。

这里我们要注意的是

#**kwargs:用于接受关键字参数,不能接受位置参数
而*args则刚好相反

 

版权声明:本文为swearBM原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/swearBM/p/9326370.html