Python中的函数

函数

  • 由诺干语句组成的语句块、函数名、参数列表构成,它是组织代码的最小单元
  • 能完成一定的功能
  • 是一个可调用对象,可以使用callable(函数名)判断该名称是否是一个可调用对象
  • 数学定义:y=f(x), y是x的函数,x是自变量。y=f(x0,x1,…xn)
函数的作用
  • 结构化编程对代码的最基本封装,一般按照功能组织一段代码
  • 封装的目的为了复用,减少冗余代码
  • 代码更加简洁美观、可读易懂
函数的分类
  • 内建函数,如:max()、reversed()等
  • 库函数,如math.ceil()
函数的定义
  • def语句定义函数
    • def 函数名(参数列表):
      函数体(代码块)
      [return 返回值]
    • 函数名就是标识符。命名要求和标识符命名要求一样。
    • 语句块必须缩进,约定4个空格
    • Python的函数如果没有return语句,那么默认会返回None值
    • 定义中的参数列表成为形式参数,只是一种符号表达(标识符),简称形参
    • 例如:
    ##定义无参函数
    def Hellogdy():
        print("gdy")
    ##函数的调用
    Hellogdy()
    ##加法函数
    def add(x,y):
        return x+y
    ##调用函数
    print(add(7,8))
    
函数的调用
  • 函数定义,只是在内存中声明了一个函数。需要调用才能执行该函数
  • 调用方法:函数名加上小括号,如果有必要参数,需要在括号内写上参数
  • 调用时写的参数是实际参数,是实实在在传入的值,简称实参

函数的参数

  • 参数是调用函数时传入的。参数要和函数定义的形参想匹配(可变参数例外)
  • 位置参数:按照参数定义顺序传入实参
    • 例如: def f(x,y,z)调用使用f(1,3,5)
  • 关键字参数:使用形参的名字来传入实参的方式。如果使用了关键字参数,那么传参顺序就可以和定义顺序不同
    • 例如: def f(x,y,z)调用使用f(x=1,z=2,y=3)
  • 混合调用
    • 如果使用位置参数和关键字参数混合调用。那么位置参数必须要在关键字参数之前传入,参数不能重复
      *例子:
def add(x,y,z):
    return x+y+z
#使用位置参数调用
add(1,2,3) #此时形参x=1,y=2,z=3的方式按照顺序获取实参
#使用关键字参数调用
add(z=1,y=3,x=5) #直接指定形参的值调用函数
#形参和实参混合调用
add(4,z=5,y=3) ##正确, #错误写法add(4,x=3,z=8)
函数参数的默认值(缺省值)
  • 在定义函数的形参时,给形参附加一个值。
  • 例如:
#4为函数形参x的默认值,5为函数形参y的默认值
def add(x=4,y=5):
    return x+y
  • 注意:如果定义函数时,有缺省值的参数必须放在没有缺省值参数的后面。
    例如:
def add(x,y=5):
    return x+y
  • 作用
    • 参数的默认值可以在未传入足够的实参时,对没有给定的参数赋值即为默认值
    • 参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用
函数的可变参数
  • 可变位置参数

    • 表示方法:【*变量名】
    • 一个形参可以匹配任意个参数。会收集多个实参组成一个tuple
    • 注意:
      1. 可变位置参数必须要在位置参数后面
      2. 可变位置参数不能使用关键字传参

    例如:

    def addsum(*args):
        sum = 0
        for x in args:
            sum += i
        return sum
    #调用
    addsum(1,23,4,5,65,6)
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值