@R星校长
在 Python 程序的开发过程中,为了代码维护的方便,我们可以把函数进行分组,分别放到不同的.py文件里。这样,每个文件包含的代码就相对较少,这个.py文件就称之为一个模块(Module)。本关的目标是让学习者了解并掌握 Python 模块定义的相关知识。
相关知识
模块能够让我们有逻辑地组织 Python 代码段,模块中能够定义函数、类和变量,模块里也可以包含可执行的代码。
模块的引入
Python 中要用关键字import来引入某个模块。比如要引用模块math,就要在文件的开头用import math来引入。在调用math模块中的函数时,引用格式为:
模块名.函数名因为这种调用方式可以避免特殊情况的发生。比如在多个模块中可能含有相同名称的函数,这时如果只是通过函数名来调用,程序无法知道是要调用哪个函数。所以如果用上述方法引入模块的时候,调用函数必须加上模块名。例如:
import math print(fabs(-2))输出结果:
NameError: name 'fabs' is not definedfabs()必须加上math前缀,例如:
import math print(math.fabs(-2))输出结果:
2有些时候我们只需要用到模块中的某个函数,这时不需要导入整个模块,只需要导入该函数即可。语句格式如下:
from 模块名 import 函数名1,函数名2....通过这种方式导入函数的时候,调用函数时就只能给出函数名,而不能给出模块名。这种导入函数的方式会有一种缺陷,就是当两个模块中含有相同名称函数的时候,后面一次导入的函数会覆盖前一次导入的函数。
例如,假如模块A中有函数function(),模块B中也有函数function()。如果先导入模块A中的function(),后导入模块B中的function(),那么当我们在后面调用function()函数的时候,程序会去执行模块B中的function()函数。
如果想一次性引入模块math中所有的函数,可以通过如下方式导入:
from math import *自己定义模块
每个 Python 文件都可以看作一个模块,模块的名字就是 Python 文件的名字。所以我们完全可以自己写一个 Python 文件,作为自己定义的模块。例如,我们编写了my_module.py文件,里面定义了plus()函数:
# my_module.py def plus(a,b): return a+b之后我们就可以在其他 Python 文件中先引入my_module,然后通过my_module.plus(a,b)来调用my_module.py文件中的plus()函数。我们也可以直接通过from my_module import plus来导入plus()函数。
小结
使用模块可以大大提高代码的可维护性,而且也增加了代码的利用率。当一个模块编写完毕之后,在其他 Python 文件中导入该模块,模块中的函数就可以被其他 Python 文件使用了。
# coding=utf-8 import math # 输入正整数a和b a = float(input()) b = float(input()) # 请在此添加代码,输入直角三角形的两个直角边的边长a和b,计算出其斜边边长 c = math.sqrt(a ** 2 + b ** 2) print( '%.3f' % c) #格式化输出python的精度 测试输入: 3 4 预期输出: 5.000 测试输入: 1.5 3.9 预期输出: 4.179 测试输入: 9 12 预期输出: 15.000 测试输入: 3.71 4.26 预期输出: 5.649