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

写在前面:大家好!我是【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

(3) 调用函数

定义一个函数只是指定这个函数能做什么,但是并没有真正地去执行它。只有在调用函数,才能发挥函数的真正作用。下面,我们就简单的调用一下上面的函数:

# 定义函数
def max(a, b):
    """输出a,b中较大的那个数"""
    if a > b:
        return a
    else:
        return b
# 调用函数
print("a,b中较大的那个数是:", max(6, 8))

实质上,整个程序是从最后一行开始执行的。在编写工程的时候,我们更习惯这种写法:

def max(a, b):
    """输出a,b中较大的那个数"""
    if a > b:
        return a
    else:
        return b

if __name__ == '__main__':
    print("a,b中较大的那个数是:", max(6, 8))

二、模块

(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

接下来,我们需要在主文件main.py中去导入这个模块,再调用其中的函数:

# 导入模块
import mymath
a = 6
b = 8
# 调用函数
print("输出a,b中较大的那个数:", mymath.max(a, b))
print("输出a,b中较小的那个数:", mymath.min(a, b))

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))

当然,也可以通过以下方式,同时导入mymath.py模块中的多个函数:

from mymath import add, max, min

如果是导入模块中的所有函数,可以直接用 * 号代替,如下所示:

from mymath import *

(4) 指定别名

有的时候,导入的模块名太长,在编写主程序时,又需要经常用到。为了方便,在导入时往往将模块指定一个更为简短的名字,比如:

import tensorflow as tf

通过这样,在主程序中不仅导入了tensorflow,而且还命名了一个别名tf,那么在主程序中,tf就指代tensorflow。

同样,也可以使用 as 给函数指定别名。比如下面这样:

from mymath import add as d 

于是,我们的主程序,就可以直接这样简写:

from mymath import add as d
a = 6
b = 8
# 调用函数
print("输出a,b之和:", d(a, b))

当我们需要进行多次add()操作时,这种简写的方式优势就很明显了!


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

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

AI 菌 CSDN认证博客专家 博客专家 CSDN合作伙伴 算法实习僧
研究僧一枚,CSDN博客专家,公众号【AI 修炼之路】作者。专注于无人驾驶(环境感知方向),热衷于分享AI、CV、DL、ML、OpenCV、Python、C++等相关技术文章。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值