瀋凣
V1
2022/03/03阅读:52主题:极简黑
python笔记34
Python day34
1. 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如
print()
。但你也可以自己创建函数,这被叫做用户自定义函数。
1.1 定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
-
函数代码块以 def
关键词开头,后接函数标识符名称和圆括号()
。 -
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 -
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 -
函数内容以冒号 : 起始,并且缩进。 -
return
[表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的return
相当于返回None
。

举个栗子:
-
定义一个函数
>>> def myfunc():
pass #空语句,用于占位
>>>
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
-
调用自定义的函数
>>> myfunc()
>>>
-
让自定义函数实现一些功能
>>> def myfunc():
for i in range(3):
print('I love Python')
>>> myfunc()
I love Python
I love Python
I love Python
>>>
1.2 函数的参数
如果函数只是简单的打包代码,那也没啥了不起的。但是函数能做的远不止这些,我们还可以通过函数的参数来实现功能的定制。
举个栗子:
-
将刚刚的函数修改为可打印任何想要的字符串
>>> def myfunc(name):
for i in range(3):
print(f"I love {name}")
>>> myfunc('Vanovel')
I love Vanovel
I love Vanovel
I love Vanovel
>>>
-
参数的数量可以指定任意多个。将自定义函数修改为可以打印任意多次任意字符串
>>> def myfunc(name,times):
for i in range(times):
print(f"I love {name}")
>>> myfunc('Vanovel',5)
I love Vanovel
I love Vanovel
I love Vanovel
I love Vanovel
I love Vanovel
>>>
我们一般
将定义函数时括号内填入的参数称为形式参数,简称形参;
将调用函数时括号内填入的参数称为实际参数,简称实参。
1.3 函数的返回值
有时候我们需要函数在执行完之后给出反馈。在之前学习的BIF中有很多带返回值的函数,比如len()
函数会返回长度、sum()
函数会返回求和结果等等。
在自定义函数中,我们只需要使用return
语句来实现返回值效果。
举个栗子:
-
自定义函数实现返回两数相除的结果
>>> def div(x,y):
z = x/y
return z
>>> div(4,2)
2.0
-
简化一下
>>> def div(x,y):
return x/y
>>> div(4,2)
2.0
>>> div(4,0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in div
ZeroDivisionError: division by zero
我们知道除法中除数不可为0,所以我们继续修改代码:
-
加入判断
>>> def div(x,y):
if y == 0:
return "除数不能为0!"
else:
return x/y
>>> div(4,0)
'除数不能为0!'
*注意:只要执行了return
语句,函数就会立刻返回,即结束。不管return
后面是否还有其他语句。
所以我们刚刚的例子就可以简写成:
>>> def div(x,y):
if y == 0:
return "除数不能为0!"
return x/y
>>> div(4,2)
2.0
>>> div(4,0)
'除数不能为0!'
如果一个函数我们没有在函数体中用return
语句返回内容,函数会在执行完函数体后默认返回None
。
>>> def myfunc():
pass
>>> myfunc()
>>> print(myfunc())
None

作者介绍
瀋凣
V1