## 函数
- 数学意义上的函数
- y = 2 x + 1 y=2x+1 y=2x+1, y ∣ x = 3 = 2 × 3 + 1 = 7 y|_{x=3}=2×3+1=7 y∣x=3=2×3+1=7
- 编程意义上的函数d
Python中函数的定义:函数是逻辑结构化和过程化的一种编程方法。
函数是可以重复使用的程序段。在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。
它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数
。我们已经使用了许多内建的函数,比如len()和range()。
函数定义和调用
函数定义
- 空函数
如果想定义一个什么事也不做的空函数,可以用pass
语句:
def func():
pass
pass
语句什么都不做,那有什么用?实际上pass
可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass
,让代码能运行起来。
- 非空函数
函数通过def关键字定义,del关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾,接下来是一块语句,他们是函数体。
声明函数的一般形式如下:
def 函数名(参数列表):
'''说明'''
函数语句
return 返回值
说明如下:
1.函数代码块以def关键词开头,后接函数标识符名称和小括号()。
2.任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
3.函数的第一行语句可以选择性地使用文档字符串…-用于存放函数说明。
4.函数内容以冒号起始,并且缩进。
5-retum [表达式]结束函数,选择性的返回一个值给调用方。不带表达式的return相当
于返回None。
其中参数列表和返回值不是必须的,return后也可以不跟返回值,甚至连retum也没有。
对于return后没有返回值的和没有return语句的函数都会返回None值
有些函数可能既不需要传递参数,也没有返回值。
没有参数时,包含参数的圆括号也必须写上,圆括号后也必须有":"。
现举一个例子:
def info():
函数调用
函数定义后,我们就具备了实现某种功能的代码。执行这些代码,只需要调用函数。
函数调用形式:
函数名()
比如上面我们已经定义好了add()函数,现在我们调用:
info()
现在整体写出代码:
# 定义函数
def info():
"""打印信息"""
print({
"name":"Tom","age":18})
# 调用函数
info()
运行,结果为:
{
'name':'Tom':'age':18}
练习:定义函数实现调用函数能够输出姓名,年龄。
函数文档说明
在上面的代码的基础上,添加
help(info)
运行后,结果为
Help on function info in module __main__:
info()
打印信息
可以看到,help()返回add()函数的相关说明。
直接查看文档说明。
#### 函数参数
假如我们需要定义一个函数计算两个数的积,有人设计如下函数:
def mul():
x = 3
y = 3
print(x * y)
mul() # 9
这样可以吗?
这个函数只能实现3*3的结果,并不具备通用性。
为了让这个函数更具通用性,我们可以添加参数:
def mul(x, y):
print(x * y)
mul(3, 6) # 调用
- 参数调用的顺序
我们先看一下例子:
>>> def test(x,y):
... print(x)
... print(y)
...
>>> test(1,2)
1
2
>>> test(x = 1,y = 2)
1
2
>>> test(y = 2,x = 1)
1
2
>>> test(1,y = 2)