0%
boxmoe_header_banner_img

加载中

函数基础


avatar
mizuki 2026年9月14日 2026年9月14日 12

引言

这一篇博客将讲解关于Python的函数部分,话不多说就立马开始吧

一.定义

函数相当于是将一些常用的代码集合,然后可以通过调用这个函数就可以实现相应的功能,这里给出Python中函数的写法

def + 函数名 + (形式参数):

函数内容(注意在内容之前要空格)

这里给出一个add函数作为例子

def add(a, b):
   return a + b

print(add(4 + 5))

另外,为了注释函数的作用,相比于普通的#注释,我们可以使用上下加上三个”,以此实现函数的注释,如下

def add(a, b):
    """
    计算两数的和
    """
    return a + b

二.函数参数

  • 1. 使用

与C++相同,本质是把实参赋值给形参,有两种使用方法

1.1 直接传值

就是依次传值,按照顺序

def printname(name1, name2):
    print(f"name1 : {name1}")
    print(f"name2 : {name2}")

printname('mzk', 'ena')

1.2 指定参数名传值

可以指定参数名传值,这样就可以不用在意传值的顺序,如下

def printname(name1, name2):
    print(f"name1 : {name1}")
    print(f"name2 : {name2}")

printname(name2 = 'mzk', name1 = 'ena')
  • 2. 默认值

对于函数的参数我们可以提前给出默认值,但是有以下几个限制条件

a. 单参数可以直接给

b. 多参数只能从右往左给默认值,并且不能左右参数都给默认值,但是中间那个参数没有默认值,与C++相同

c.不推荐默认值为列表或者字典,因为二次调用的时候列表和字典是使用过一次的,并不会重建默认值,但是对于空列表或者字典,可以给定None当作默认值

三.函数传参

这一节主要讲的是传参修改的问题

  • 1. 简单类型

对于简单类型的形参,不会修改实参的值,例如整数(int)

  • 2. 复杂类型

对于复杂类型的形参,在函数中修改列表会修改掉实参的值,例如列表,字典

当然也有解决方法,例如传一个切片就可以解决,相当于传了一个临时变量

四.函数返回值

  • 1. 基本语法

主要是通过return返回返回值,这里给一个add函数作为例子

def add(a, b):
   return a + b
  • 2. return返回值

a. 数值

b. 字符串

c. 布尔值

d. 列表

…………

当然,也可以返回值,也可以返回一个函数,这就牵扯到了递归函数

五.星号*

这里指的是在形参上加星号的意思,可以使传的参数不被固定死

  • 1. 单星号 – 元组

例如*args,相当于由所有实参组成的,名为args的元组,这里给出一个例子

def add(*nums):
    sum = 0;
    for n in nums:
        sum += sum
    return sum

sum = add(1, 3, 4, 5, 6, 7)
print(sum)

这样无论传了多少个参数,都会直接归到args这个元组中

  • 2. 双星号 – 字典

例如**args,相当于由所有实参组成的,名为args的字典,但是只能接受关键字传字典,这里给出例子

def printnames(**names):
    for name in names.values():
        print(name)

printnames(name1 = 'mzk', name2 = 'ena', name3 = 'kfy')
#或者这样也可以
printnames(**{'name1' : 'mzk', 'name2' : 'ena', 'name3' : 'kfy'})

注意:当有多个形参时,只能把带星号的形参放在最后,然后按照顺序,剩下的所有参数都传给带星号的形参

六.函数报错

这里给出几个常见的报错信息,方便你排查

  • 1.名称错误

Did you mean: ‘xxx’?

  • 2. 参数少了

missing ? required positional argument: ‘?’

  • 3. 参数多了

takes ? positional arguments but ? were given

  • 4. 类型不对

unsupported operand type(~) ~~~~

总结

至此函数的基本内容就讲解完了,希望对你有帮助

上一次更新已经跑远了✨ 计算中...
(‾◡◝) 本内容里的一些消息,可能已经跟不上时间啦~


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码
后退
前进
刷新
复制
粘贴
全选
删除
返回首页
0%
目录
顶部
底部
📖 文章导读