Python:函数1——函数的参数

一、定义与调用

定义:def func():

pass

调用:func()

调用时是往上边去找,如果没有找到,会报错NameError

你有听说过DRY吗?       
DRY是程序员们公认的指导原则:Don't Repeat Yourself. 
快快武装你的思维吧,拿起函数,不要再去重复拷贝一段代码了!

二、函数的参数

使函数可以个性化!

三、函数的返回值

只需使用return关键字

没有return时默认返回None

奋斗函数的参数奋斗

1、函数定义时用的是形参;调用时为实参
2、函数文档

给函数写文档,让人们更容易理解函数

func.__doc__打印出函数文档(特殊属性)

>>> def func():
...     'func doc'
...     print('xxxx')
... 
>>> func()
xxxx
>>> func.__doc__
'func doc'


help(func)也可以看到函数文档

help(func)
Help on function func in module __main__:


func()
    func doc
print.__doc__能打印出print()函数的文档,但是是原样转义的反斜杠,不够漂亮,help()返回的漂亮
3、关键字参数

解决为止参数太多时,位置放不对的问题!

>>> def func(name, age):
...     print(name + '->' + str(age))
... 
>>> func(age=27, name='liyi')
liyi->27
4、默认值参数

默认值参数必须放在后边!

>>> def func(name='liyi', age):
...     print(name + '->' + str(age))
... 
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
5、收集参数(可变参数)

当不知道要传入到少参数时使用,只需要在关键字参数前加个*号,其实就是用元组打包起来给params而已

>>> def test(*params):
...     print('the length is:', len(params))
...     print('the second param is:', params[1])
... 
>>> test(1, 'xiaoyi', 3, 'a')
the length is: 4
the second param is: xiaoyi
>>> 

def test(*params, exp):

当使用test(1,2,3,4,5,'a')调用时会报错,因为所有参数会被params收集,exp得不到参数;可以test(1,2,3,4,5, exp='a')来解决;建议把收集参数后边的参数设计为默认的参数,如print()函数:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)	#*value


四、例

1. 请问这个函数有多少个参数?

def MyFun((x, y), (a, b)):
     return x * y - a * b

如果你回答两个,那么恭喜你错啦,答案是0,因为类似于这样的写法是错误的!
我们分析下,函数的参数需要的是变量,而这里你试图用元祖的形式来传递是不可行的。
     
我想你如果这么写,你应该是要表达这么个意思:

1. >>> def MyFun(x, y):
2.         return x[0] * x[1] - y[0] * y[1]
3. 
4. >>> MyFun((3, 4), (1, 2))
5. 10



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值