(定义函数python代码和解析)(python 函数解释)

什么是函数和为什么要用函数?

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

如果不用函数,会怎么样?

如果没有函数,代码就会从上往下执行全部执行。

函数没有调用的时候,它不会自己执行的。

  • 比如你去购物网站买东西,网站没有用函数。
  • 你打开他们的首页,然后后台的代码从上往下执行。
  • 一个项目中有多少功能,多少代码量。
  • 当打开首页需要话费5分钟,搜索商品又要花费 5分钟,你以后肯定不去这个网站购物了。
  • 本来网站首页只需要调用一个函数就可以了,搜索商品页面也是一个函数。这样两个页面前后打开加起来也就几秒的事。

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以def关键词开头,后面依次写出函数名、括号、括号中的参数和冒号。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,在缩进块中编写函数体。
  • return 表达式结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
  • 只要有return 表达式后面的代码都不会再执行。

语法

Python 定义函数使用 def 关键字,一般格式如下:

(定义函数python代码和解析)(python 函数解释)

函数调用

定义一个函数,给了函数一个名称,指定了函数里包含的参数,和代码块结构。

函数调用格式:函数名()

(定义函数python代码和解析)(python 函数解释)

参数传递

在 python 中,类型属于对象,变量是没有类型的。

参数可以看做钥匙,函数是门,多个参数就是多把 钥匙,开门需要钥匙。

定义函数的时候,我们把参数的名字和位置确定下来。

对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了。

函数内部的复杂逻辑被封装起来,调用者无需了解。

Python的函数定义非常简单,但灵活度却非常大。

除了空参数和正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数。以下是调用函数时可使用的正式参数类型:

  • 空参数
  • 必需参数
  • 默认参数
  • 不定长参数

空参数

(定义函数python代码和解析)(python 函数解释)

必需参数

必需参数必须传入函数。调用时的数量必须和声明时的一样。

(定义函数python代码和解析)(python 函数解释)

如果不传参数,会报错。门需要钥匙开门,没带钥匙怎么可以打开。

(定义函数python代码和解析)(python 函数解释)

默认参数

(星座函数公式)(星座函数python)

调用函数时,如果没有传递参数,则会使用默认参数。

(定义函数python代码和解析)(python 函数解释)

输出结果:参数num,str='求平方的值',调用函数只传一个参数5,其实程序自己把默认值str='求平方的值'也传入了,我们看不到而已。

(定义函数python代码和解析)(python 函数解释)

调用函数时,修改默认值

(定义函数python代码和解析)(python 函数解释)

输出结果:

(定义函数python代码和解析)(python 函数解释)

不定长参数

定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。

加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。

(定义函数python代码和解析)(python 函数解释)

输出结果:

(定义函数python代码和解析)(python 函数解释)

传入多个参数输出结果:

(定义函数python代码和解析)(python 函数解释)

函数一个必须参数和一个可变的元组参数。传入3个参数减去一个必须参数,剩下的2个参数都放到可变的元组参数中,所以不定长参数有两个元素。

(定义函数python代码和解析)(python 函数解释)

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

如果在函数调用时没有指定参数,它就是一个空字典。我们也可以不向函数传递未命名的变量。

(定义函数python代码和解析)(python 函数解释)

输出结果:

(定义函数python代码和解析)(python 函数解释)

传入参数输出结果:

(定义函数python代码和解析)(python 函数解释)

两个星号**的参数会把赋值形式的参数变为字典形式。

(定义函数python代码和解析)(python 函数解释)

组合参数:

  • 参数定义的顺序必须是:必选参数、默认参数、可变参数。
(定义函数python代码和解析)(python 函数解释)

输出结果:

(定义函数python代码和解析)(python 函数解释)

change('名字',12,'元组',sex='男',ad='地址'),一个必须参数name对应名字,默认参数值1被传递的第二个参数12替换。第三个参数归类到一个星号的元组参数,如果没有碰到sex='男'这样的参数,后面的参数都会归类到一个星号的元组参数。

(圆可以用函数表达吗)(定义函数画圆Python)

直到碰到类似sex='男'这样的赋值语句,它才会归类到两个星号的字典参数。例子:

(定义函数python代码和解析)(python 函数解释)

输出结果:看到这里又有疑问{'a':1,'b':'c'}不是字典,怎么会归类到元组。

(定义函数python代码和解析)(python 函数解释)

要记住一个原则,碰到赋值形式的语句才归类到两个星号的字典参数。把{'a':1,'b':'c'}改一下。

(定义函数python代码和解析)(python 函数解释)

输出结果:把{'a':1,'b':'c'}赋值给dict。

(定义函数python代码和解析)(python 函数解释)

return语句

return语句用于退出函数,选择性地向调用方返回一个表达式。没有return语句默认返回None。

函数返回多个值,是以元组的形式,注意用逗号隔开。

(定义函数python代码和解析)(python 函数解释)

输出结果:

(定义函数python代码和解析)(python 函数解释)

匿名函数:python 使用 lambda 来创建匿名函数。

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda 函数的语法只包含一个语句:

(定义函数python代码和解析)(python 函数解释)
(定义函数python代码和解析)(python 函数解释)

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(定义函数python代码和解析)(python 函数解释)
本文链接:https://www.51qsb.cn/article/3188.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2022-09-07
下一篇2022-09-10

你可能还想知道

发表回复

登录后才能评论