博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自学python记录_(3)函数
阅读量:4599 次
发布时间:2019-06-09

本文共 2623 字,大约阅读时间需要 8 分钟。

函数是什么呢?函数就是一个方法或则说一个功能的展现。

一、函数定义

1 def functionName(arguments):2     body....3     return value

第一部分:可以看见python函数是以一个def关键字开始的,后面跟着的就是函数名字functionName,紧接着小括号里面跟着的是这个函数的参数arguments。

第二部分:是函数的功能展示,需要实现什么功能在这里展示出来。
第三部分:最后一部分是返回值。

二、参数

函数的参数按照概念 分为实参形参

2.1形参

形参就是实参的傀儡,形参只是在功能展示的时候,用来替代实参的一个名字。就像玩游戏的时候你进入游戏的一个角色,你在游戏之外你是你自己,你进入游戏了你就是鲁班,你就是貂蝉。这英雄就是形参。

2.1.1静态形参

其实只要一个静态参数就可以满足90%的函数需求了,那为什么还有动态参数这个东西,我认为还是因为---懒。因为静态参数有一个不好的地方就是当需要输入的参数很多的时候,一个一个定义形参太麻烦了,这个时候动态参数就营运而生了。

1 def sum(*args):2     sum = 03     for i in args:4         sum += i5     return sum6 print sum(1,2,3,4,99)7 输出:8 >>109

我们讲回静态参数,静态参数就是你玩《英雄联盟》时候选择的英雄技能,q的功能就是禁锢,e就是防御,英雄技能否是固定好的,不会因为不玩莫甘娜,她的技能就变了。而动态参数就是召唤师技能,可以是闪现,也可以是治疗。

静态参数又可以细分为位置参数、关键字参数、默认参数。

位置参数:一个萝卜一个坑,有坑就必须就萝卜。

1 def mymax(x,y):2     return  x if x > y else y3 print mymax(10,20)4 输出:5 >>20

关键字参数:这个时候的萝卜都是有编号的,对应哪个坑心里明白就行。

1 def mymax(x,y):2     return x if x > y else y3 print mymax(y = 10,x = 20)4 print mymax(x = 20,y = 10)5 输出:6 >>207 >>20

默认参数:坑里面已经有一个萝卜了,你需要用这个坑你就鸠占鹊巢,你不需要的时候呢,它就是那个被你欺负的萝卜。

1 def mymax(x,y,z=10):2     return max(x,y,z)3 print mymax(5,6)4 print mymax(5,6,7)5 输出:6 >>107 >>7

2.1.2动态形参

上面已经说了,形参是实参的傀儡,动态形参对应的实参可能不止一个对象。为什么要这么设置,刚刚说了,因为懒嘛。看看下面就知道了

*args-->tuple

一个*加一个名字 的参数对应实际输入为一个元组类型的参数

1 def sum(*args):2     sum = 03     for i in args:4         sum += i5     return sum6 print sum(1,2,3,4,99)7 输出:8 >>109

**args-->dict

两个*加一个名字 的参数对应实际输入为一个字典类型的参数

1 def studensInfo(**kwargs):2     return kwargs.keys(),kwargs.values()3 print studensInfo(name = 'alex',sex = 'male')4 输出:5 >>(['name', 'sex'], ['alex', 'male'])
1 def func(a,b,c):2     print a,b,c3 dict1 = {
'a':1,'b':2,'c':3}4 func(**dict1) # 得到value5 func(*dict1) # 得到key,*dict1这的输入为一个元祖,元祖会根据参数的hash值排序(我好想记得网上有人说是根据hash值,具体得咱不去深究),所以输出为acb,而不是想象中的abc6 输出:7 >>1 2 38 >>a c b

总结:星元组星星字典

2.2实参

实参就是实际调用函数时候 传入的值

1 def sum(*args):2     sum = 03     for i in args:4         sum += i5     return sum6 print sum(1,2,3,4,99)

这里的“1,2,3,4,99”就是元组类型的实参。

1 def studensInfo(**kwargs):2     return kwargs.keys(),kwargs.values()3 print studensInfo(name = 'alex',sex = 'male')

这里的“name = 'alex',sex = 'male'”就是字典类型的实参。

对于这些乱七八糟的参数可以使用下图概括,原图来自网络,侵删。

三、返回值

返回值就是函数功能实现完了之后,需要返回的一个参数。可以不需要,但是得记住,优秀程序员都喜欢返回值

关键字:return
return后面的参数就是返回值
需要知道的:
1:一个函数要么没有返回值,要么只有一个返回值,不可能有多个返回值
2:函数执行到return后,整个函数就结束了,哪怕后面有金子银子也不去捡了
3:即使你程序中没有写返回值,程序结束后也会自动返回一个None,相当于C语言中的NULL

1 def myMax(a,b):2     if a>b:3         return a4     else:5         return b6 print myMax(12,34)7 输出:8 >>34
1 #coding=utf-82 def myprint(a):3     print a4 myprint("脚让一让")#这个函数就是脱了裤子打屁,根本没有任何意义。5 输出:6 >>脚让一让

 

转载于:https://www.cnblogs.com/vijay6/p/9710057.html

你可能感兴趣的文章
js中按钮控制显示隐藏以及下拉功能
查看>>
Intent
查看>>
波涛 - 证券期货投资计算机化技术分析原理(2013年3月19日)
查看>>
sqlserver存储过程中sql语句连接及datetime字段的处理
查看>>
JavaScript 测试和捕捉
查看>>
高级软件工程第二次作业——个人项目实战:数独
查看>>
Kafka主要配置
查看>>
PHP开发经验总结
查看>>
Leetcode 400. Nth digits
查看>>
pycharm 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun错误解决方案背景描述...
查看>>
三次握手 四次回收流程图
查看>>
第四次实验作业
查看>>
挖矿call
查看>>
第二次站立会议1
查看>>
Linux进程调度分析
查看>>
C++布隆过滤器
查看>>
前端优化
查看>>
【转】Javascript 中的false,零值,null,undefined和空字符串对象
查看>>
记事本APP之Alpha报告
查看>>
bellman ford优先队列优化简介模板
查看>>