时间:2022-03-09 09:34:22 | 栏目:Python代码 | 点击:次
函数也称方法,下面写一个简单的函数:
def function(): print("我是函数。")
这是一个很简单的函数,函数只干了一件事,打印输出“我是函数。”这句话。
从这个函数的外观看,有个def
,还有个function
加个()
和:
。
def
是定义函数的关键字不能改动,function
为函数的名称,可以随便写,后加()
和:
这是规定。
在函数里面的输出语句可以称之为函数体所有函数体需要进行缩进,不然那个会报错。
使用方式很简单
function()
重复函数名再加上括号,就可以使用了
接下来我写一个函数:
def function(a,b): print(a,b)
在这个函数里,括号里面的 a和b就叫参数(函数参数)也叫形式参数。参数是干什么的呢?参数的作用是可以向这个目标函数传入一些东西。
比如在这个函数里是可以打印外面传入的参数内容:
function("aaa","bbb")
我向这个函数传入了两个参数,参数的位置是不能改变的,"aaa"可以成为实际参数,对应的就是a这个形式参数,"bbb"对应就是b,这个传入的过程为参数传递
结果输出的顺序就是:
aaa bbb
还可以这样进行参数传递:
function(a="aaa","bbb") function("aaa",b="bbb") function(a="aaa",b="bbb") function(b="bbb",a="aaa")
当我们所定义的函数里面存在参数,当使用的它的时候,一定需要传入参数不然会报错,类如:
def function(a): print(a) function()
运行结果:
TypeError Traceback (most recent call last)
<ipython-input-1-1ea14deaa8c8> in <module>
2 print(a)
3
----> 4 function()TypeError: function() missing 1 required positional argument: 'a'
如果不知到传递的参数到底有多少,该怎么办呢?
可以用*
和**
来实现。
加了 *
的参数会以元组(tuple)的形式传入,存放所有未命名的变量参数,类如:
def function(*args): print(args) function(12,35,65)
运行结果:
(12, 35, 65)
发现输出结果是一个元组,包含了所有传入的参数
加了两个星号 **
的参数会以字典的形式传入;
def function(**kwargs): print(kwargs) function(a=12,b=35,c=65)
这里传入的参数需要注意,是键值对。
当 一个星号,和两个星号同时出现,一个星号必须在两个星号前面,列如:
def function(*args, **kwargs): print(args) print(kwargs)
如果函数里面出现return,表示这个函数运行到这里结束了,后面不管有多少多不会再执行。并且return会返回它后面表达式的值,相当于把后面的值赋给函数,例如:
def function(): print("aa") return "aaa" print("bb") print(function())
运行结果:
aa
aaa
发现return
后面的语句没有执行函数就退出了,并且函数自己也有值了。