python 函数与参数


注:该文档仅为博主个人学习理解,如有错误,欢迎评论区指正,谢谢。

什么是函数?

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

函数一般是为了实现某种功能而创建。以便多次调用使用该功能。

定义函数格式如下:

def function(a):
    """
    定义函数,传入参数a
    """
    return a

Python 使用def 开始函数定义,紧接着是函数名,括号内部为函数的参数代码块为函数的具体功能实现代码。

调用函数方法如下:

a_object = function(1)
  • 注意:

  • 每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了

  • 当然了如果函数中执行到了return也会结束函数

值得一提的是,在函数中,如果有print输出,那么每次调用函数都会打印一次。而return是返回参数,它返回的参数由函数本身接收,不打印该函数是不会返回值的。如果函数体中没有return,那么该函数返回None。

只调用,不执行:

def function(a):
    """
    定义函数,传入参数a
    """
    print(f'打印参数{a}')
    return a
a_object = function(1)
# print(a_object)
打印参数1

既调用,又执行:

def function(a):
    """
    定义函数,传入参数a
    """
    print(f'打印参数{a}')
    return a
a_object = function(1)
print(a_object)
打印参数1
1

注意到参数a随着函数对象被执行打印出来了。那么如果return 两个数又会怎么样呢?

def function(a,b):
    """
    定义函数,传入参数a,b
    """
    print(f'打印参数{a},打印参数{b}')
    return a,b
a_object = function(1,2)
print(a_object)
打印参数1,打印参数2
(1, 2)

我们可以看见如果return 多个数,那么它们是以元组的形式传出的。

当然了,return返回也可以是列表,字典等类型。

函数文档

在上面代码,我们可以看见在函数def下面使用···可以编写函数文档。同时我们使用**.doc**可以查看函数文档。

def function1(a,b,c):
    """
    定义函数,传入参数a,b
    """
    print(f'打印参数{a},打印参数{b},{c}')
    return [a,b]
a_object = function1(1,2,3)
print(a_object)
print(function1.__doc__.strip())
打印参数1,打印参数2,3
[1, 2]
定义函数,传入参数a,b

函数的参数

  • 定义时小括号中的参数,用来接收参数用的,称为 “形参

  • 调用时小括号中的参数,用来传递给函数用的,称为 “实参

当然定义函数的时候也可以不进行传参。

一般按照形参的顺序和位置,传入实参。这种参数称为位置参数

def numTotal_1(start, end):
    """
    计算start到end的和
    """
    total = 0
    for i in range(start, end + 1):
        total += i
    return total

print(numTotal_1(1, 100))
5050

注意位置参数顺序和位置不能乱。

有时候,函数参数的排列可能难以记住,尤其是参数很多的时候,我们可指定参数的名称。

我们使用名称指定的参数叫做关键字参数

def numTotal_1(start, end):
    """
    计算start到end的和
    """
    total = 0
    for i in range(start, end + 1):
        total += i
    return total

print(numTotal_1(end=100,start=1))
5050

关键字参数,不考虑位置和顺序。

当然你可以结合位置参数和关键字参数一起使用。

注意:一定要先指定所以的位置参数,再使用关键字参数

参数的收集

要是有时候,你不能确定你传入参数的数量,或者传入参数的数量有变动,那么我们可以使用不定长参数(args, kwargs),它们两个的区别是args收集位置参数,返回的是一个元组,而kwargs收集关键字参数,返回一个字典。

def argument(a, b, c, *args, **kwargs):
    print(a, b, c)
    print(args)
    print(kwargs)
argument(1, 100, 200, 300,  d=100, e=200, f=300)
1 100 200
(300,)
{'d': 100, 'e': 200, 'f': 300}

参数的分配

同样我们可以将不定长的元组,字典作为实参传入函数当中

def argument(a, b, c, *args, **kwargs):
    print(a, b, c)
    print(args)
    print(kwargs)
tuple1 = (300,400)
dict1 = {'d':100, 'e':200, 'f':300}
argument(1,100,200,*tuple1,**dict1)
1 100 200
(300, 400)
{'d': 100, 'e': 200, 'f': 300}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嚄825

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值