Python学习笔记DAY3---函数

         关于函数,编程哪里少的了函数,Python里的函数呢,使用def 来定义,如下例子:

def fun():
    print('这是一个函数')

         用def来定义,下面缩进的为函数体,调用的话直接调用函数名来实现。

         提到函数自然会想到参数,Python里的参数很灵活,很神奇。首先,参数是一个变量,所以呢,元组自然是不能用来传值的。Python的函数有三种特殊的参数,分别是关键字参数,默认参数,收集参数,下面代码说明:

        首先是一般的参数形式:

def power(x,n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
调用power(2,2)后,会返回2的2次方,如果只给函数一个值2的话,编译器就会报错。

#报错内容
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    power(2)
TypeError: power() missing 1 required positional argument: 'n'
少了一个参数n,为了防止这样的出现,或者大多数情况下n的值是一样的,每次都要输入的话很麻烦,这个时候默认参数就出现了:

def power(x,n = 2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
这样的话n的值已经被默认了,可以只传X的值就可计算,当需要的n的值不是2时,再用正常的传值方式即可。

        有时候,需要的参数的数量是不一定的,就像给了一堆数字,然后求他们的和,这一堆的的数字数量是不一定的,这个时候怎么办呢,可变参数(收集参数)就出现了,定义可变参数的时候再参数前加上*号,这样传给函数的值就是一个元组,里边可以是任意个值,0个也可以。如果要传入的值是一个元组或者列表,可以直接在列表和元组名之前加上*直接传入即可。代码示例如下:

def fun1(*x):
    sum = 0
    for i in x:
        sum += i
    return sum
调用时使用fun1(1,2,3),即可输出结果6.
        对于前面求平方的例子,有另一种传值方式,power(n = 3, x = 2)也能正确的返回,把每个量都标明了关键字,这就叫关键字参数

        再来个例子:

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
        这个输入时输入name和Age后,后面一个即为关键字参数,可由输入者自行决定参数的名称和值传值时传入person('a',12,love = 'man'),便能返回

name: a age: 12 other: {'love': 'man'},将新的关键字和参数放入dict中。

        如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收 city 和 job 作为关键字参数。这种方式定义的函数如下:

def person(name, age, *, city,job):
    print( name, age, city, job)
        *后面的是关键字参数
        在 Python 中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这 5 种参数都可以组合使用,除了可变参数无法和命名关键字参数混合。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。在函数调用的时候, Python 解释器自动按照参数位置和参数名把对应的参数传进去。






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值