【人生苦短,我学 Python】进阶篇——函数与模块(Day13)

举报
AI 菌 发表于 2021/08/04 22:37:05 2021/08/04
【摘要】 写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~ 我的博客地址为:【AI 菌】的博客 我的Github项目地址是:【AI 菌】的Github -> 前往【人生苦短,我...

写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

一、函数

(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()操作时,这种简写的方式优势就很明显了!


-> 回到【人生苦短,我学 Python】总目录 <-

在这里插入图片描述
由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!

文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。

原文链接:ai-wx.blog.csdn.net/article/details/113772998

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。