【人生苦短,我学 Python】进阶篇——函数与模块(Day13)
写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我
热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对深度学习、机器视觉、算法、Python、C++感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github
一、函数
(1) 什么是函数
函数是可重复使用的,用来实现单一,或相关联功能的代码段。函数能够很好地划分和组织程序的执行逻辑。通过使用函数,可以将原本复杂冗长的程序划分为依次调用的程序块。
函数能提高应用的模块性,和代码的重复利用率。通过前面的学习,你已经知道Python提供了许多内置函数,比如print()、input()、len()、max()等。但你也可以自己创建函数,这些被叫做用户自定义函数。
(2) 定义函数
在定义一个函数的过程中,我们需要遵循以下的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
- 任何传入参数必须放在圆括号中间,圆括号之间可以用于定义参数
- 函数的第一行语句可以选择性地使用文档字符串,用于对函数解释说明
- 函数内容以冒号 : 起始,以缩进确定程序结构
- return [表达式] 结束函数,返回一个值给调用处,不带表达式的 return 相当于返回 None。
下面,举例定义一个简单的函数,来输出两数中的较大的数:
def max(a, b): """输出a,b中较大的那个数""" if a > b: return a else: return b
- 1
- 2
- 3
- 4
- 5
- 6
(3) 调用函数
定义一个函数只是指定这个函数能做什么,但是并没有真正地去执行它。只有在调用函数,才能发挥函数的真正作用。下面,我们就简单的调用一下上面的函数:
# 定义函数
def max(a, b): """输出a,b中较大的那个数""" if a > b: return a else: return b
# 调用函数
print("a,b中较大的那个数是:", max(6, 8))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
实质上,整个程序是从最后一行开始执行的。在编写工程的时候,我们更习惯这种写法:
def max(a, b): """输出a,b中较大的那个数""" if a > b: return a else: return b
if __name__ == '__main__': print("a,b中较大的那个数是:", max(6, 8))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
二、模块
(1) 什么是模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序导入,以使用该模块中的函数等功能。
Python之所以好用,原因之一就是其有着丰富的标准模块,这些标准模块功能强大,且易于使用。比如常用的有os模块、sys模块、datetime模块等。
而本文主要带大家了解,如何建立自己的模块,并且导入模块,或者导入模块中的某个函数。
(2) 导入整个模块
在导入一个自定义模块之前,我们需要自建一个模块,命名为mymath.py。用来存放我们定义的一些函数。比如下面这样:
def max(a, b): """输出a,b中较大的那个数""" if a > b: return a else: return b
def min(a, b): """输出a,b中较小的那个数""" if a < b: return a else: return b
def add(a, b): """输出a,b之和""" return a + b
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
接下来,我们需要在主文件main.py中去导入这个模块,再调用其中的函数:
# 导入模块
import mymath
a = 6
b = 8
# 调用函数
print("输出a,b中较大的那个数:", mymath.max(a, b))
print("输出a,b中较小的那个数:", mymath.min(a, b))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Python 在读取main.py时,代码行 import mymath 让 Python 打开文件 mymath.py ,并将其中的所有函数都复制到这个程序中。你看不到复制的代码,因为这个程序运行时,Python 在幕后复制这些代码。你只需知道,在 main.py 中,可以使用 mymath.py中定义的所有函数。
(3) 从模块中导入函数
有的时候,在主程序中,不需要用到mymath.py中所有的函数,这个时候就可以只导入需要用的那个函数,比如值导入mymath.py中的add()函数:
# 导入模块
from mymath import add
a = 6
b = 8
# 调用函数
print("输出a,b之和:", add(a, b))
- 1
- 2
- 3
- 4
- 5
- 6
当然,也可以通过以下方式,同时导入mymath.py模块中的多个函数:
from mymath import add, max, min
- 1
如果是导入模块中的所有函数,可以直接用 * 号代替,如下所示:
from mymath import *
- 1
(4) 指定别名
有的时候,导入的模块名太长,在编写主程序时,又需要经常用到。为了方便,在导入时往往将模块指定一个更为简短的名字,比如:
import tensorflow as tf
- 1
通过这样,在主程序中不仅导入了tensorflow,而且还命名了一个别名tf,那么在主程序中,tf就指代tensorflow。
同样,也可以使用 as 给函数指定别名。比如下面这样:
from mymath import add as d
- 1
于是,我们的主程序,就可以直接这样简写:
from mymath import add as d
a = 6
b = 8
# 调用函数
print("输出a,b之和:", d(a, b))
- 1
- 2
- 3
- 4
- 5
当我们需要进行多次add()操作时,这种简写的方式优势就很明显了!

由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!
文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。
原文链接:ai-wx.blog.csdn.net/article/details/113772998
- 点赞
- 收藏
- 关注作者
评论(0)