脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python 函数的详解与应用范例

python 函数的详解与应用范例

2022-02-26 00:06不侠居 Python

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数

如何定义一个函数

函数也称方法,下面写一个简单的函数:

?
1
2
def function():
    print("我是函数。")

这是一个很简单的函数,函数只干了一件事,打印输出“我是函数。”这句话。
从这个函数的外观看,有个def,还有个function加个():
def是定义函数的关键字不能改动,function为函数的名称,可以随便写,后加():这是规定。
在函数里面的输出语句可以称之为函数体所有函数体需要进行缩进,不然那个会报错。

如何使用

使用方式很简单

?
1
function()

重复函数名再加上括号,就可以使用了

什么是参数

接下来我写一个函数:

?
1
2
def function(a,b):
    print(a,b)

在这个函数里,括号里面的 a和b就叫参数(函数参数)也叫形式参数。参数是干什么的呢?参数的作用是可以向这个目标函数传入一些东西。

比如在这个函数里是可以打印外面传入的参数内容:

?
1
function("aaa","bbb")

我向这个函数传入了两个参数,参数的位置是不能改变的,"aaa"可以成为实际参数,对应的就是a这个形式参数,"bbb"对应就是b,这个传入的过程为参数传递

结果输出的顺序就是:

aaa bbb

还可以这样进行参数传递:

?
1
2
3
4
function(a="aaa","bbb")
function("aaa",b="bbb")
function(a="aaa",b="bbb")
function(b="bbb",a="aaa")

当我们所定义的函数里面存在参数,当使用的它的时候,一定需要传入参数不然会报错,类如:

?
1
2
3
4
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)的形式传入,存放所有未命名的变量参数,类如:

?
1
2
3
def function(*args):
    print(args)
function(12,35,65)

运行结果:

(12, 35, 65)

发现输出结果是一个元组,包含了所有传入的参数

加了两个星号 ** 的参数会以字典的形式传入;

?
1
2
3
def function(**kwargs):
    print(kwargs)
function(a=12,b=35,c=65)

这里传入的参数需要注意,是键值对。

当 一个星号,和两个星号同时出现,一个星号必须在两个星号前面,列如:

?
1
2
3
def function(*args, **kwargs):
    print(args)
    print(kwargs)

return是干什么

如果函数里面出现return,表示这个函数运行到这里结束了,后面不管有多少多不会再执行。并且return会返回它后面表达式的值,相当于把后面的值赋给函数,例如:

?
1
2
3
4
5
6
def function():
    print("aa")
    return "aaa"
    print("bb")
 
print(function())

运行结果:

aa
aaa

发现return后面的语句没有执行函数就退出了,并且函数自己也有值了。

到此这篇关于python 函数的详解与应用范例的文章就介绍到这了,更多相关python 函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_46778548/article/details/121027062

延伸 · 阅读

精彩推荐