python def函数报错详解_python自定义函数def的应用详解

哇哦!他真的可以有

经过查询他显示的是这个函数的内存地址,而不是这个函数的结果什么的,函数并没有被调用

温馨提示

调用函数一定要在函数名后面加上括号

函数参数

自定义函数的参数,分为几大类:

位置传参

关键字传参

必选参数

默认参数

可变参数

……

形参与实参

白话时间:(个人理解基础的表达,如有不同之处请指教提出)

形参:

就是参数名称,一个没有被赋值的变量名,不会实际的参与函数的运算,而是起到一个类似占位符的作用。

实参:

实际参加函数运算的值,已经赋值给了相对应的变量名。

ps:以上基于个人理解,本非准确表达,在个人理解基础上的白话表达

位置参数

位置参数就是按照参数的位置进行表达和相对应的

参数写的位置决定了它所对应的值,这种写法如果有多个参数必须注意,写错位置整个函数有可能会报错,整个程序有可能会奔溃!!!

关键字参数

关键字参数虽然写法较为麻烦但是很好的解决了多个参数因为位置错误导致的函数报错及程序不稳定问题

通过定义的参数名称来确定对应参数的值,可以有效的解决问题

例:print() 里面除了经常用的输出内容还有end参数

end参数默认是‘\n',如果通过关键字参数进行重新定义就可以改变

for i in range(10):

print(i)

结果:

0

1

2

3

4

5

6

7

8

9

for i in range(10):

print(i,end= ' ')

结果:

0 1 2 3 4 5 6 7 8 9

默认参数

在函数涉及过程中很多参数不一定所有人一定用的上,可以设置一个默认值,这样子需要的人可以DIY,没有需要的就采用默认参数

比如print()中 end 就是默认参数默认值为‘\n'

def add(x=0, y=0):

return x+y

print(add())

结果:

0

必选参数

必选参数就是必须要写的参数,这个与默认参数相对,不是默认参数就是必选参数,如果没有对必选参数进行导入就会引发报错,导致系统函数奔溃

def add(x, y): # 新建add()

return x+y

print(add())

Traceback (most recent call last):

print(add())

TypeError: add() missing 2 required positional arguments: 'x' and 'y'

这个就是缺少x,y参数导致的异常。

所有在使用函数及自定义时要注意必选参数的设置

可变参数

可变参数这个名字比较高大上,但是实际上很简单

比如要写一个多个数字相加的函数怎么办呢?

直接写?

def add(x, y): # 新建add()

return x+y

那如果是3个值呢?

会应为多了一个参数报错

那么就改成三个参数?

def add(x, y, z): # 新建add()

return x+y+z

问题来了如果是2个值那么就会报错缺一个参数,如果是4个及以上就会报错,多了参数

啊啊啊啊啊啊啊啊啊!

只是什么东西,难度python一世英名就毁在这里了嘛?

不不不!

神奇的事情发生了

def 函数名(参数1,参数2,参数…,*可变参数):

函数体(语句块)

返回值

emmm,奇怪的知识增长了

def add(x, *y):

for num in y:

x += num

return x

print(add(2,3,4))

结果

9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值