Python入门之模块——第1关:模块的定义
Posted YLeee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门之模块——第1关:模块的定义相关的知识,希望对你有一定的参考价值。
任务描述
在Python程序的开发过程中,为了代码维护的方便,我们可以把函数进行分组,分别放到不同的.py
文件里,这样,每个文件包含的代码就相对较少,这个.py
文件就称之为一个模块(Module)。
本关的目标是让读者了解并掌握Python模块定义的相关知识。
相关知识
模块能够让我们有逻辑地组织Python代码段,模块中能够定义函数,类和变量,模块里也可以包含可执行的代码。
Python中要用关键字import
来引入某个模块,比如要引用模块math
,就要在文件的开头用import math
来引入。在调用math
模块中的函数时,引用格式为:
模块名.函数名
因为这种调用方式可以避免特殊情况的发生:比如在多个模块中可能含有相同名称的函数,这时如果只是通过函数名来调用,程序无法知道是要调用哪个函数。所以如果用上述方法引入模块的时候,调用函数必须加上模块名。
例如:
import math
print(fabs(-2))
输出结果:
NameError: name 'fabs' is not defined
fabs()
必须加上math
前缀,例如:
import math
print(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文件中先import my_module
,然后通过my_module.plus(a,b)
来调用my_module.py
文件中的plus()
函数。我们也可以直接通过from my_module import plus
来导入plus()
函数。
小结:使用模块可以大大提高代码的可维护性,而且也增加了代码的利用率。当一个模块编写完毕之后,在其他Python文件中导入该模块,模块中的函数就可以被其他Python文件使用了。
编程要求
本关的编程任务是补全src/step1/module.py
文件的代码,实现相应的功能。具体要求如下:
- 输入直角三角形的两个直角边的边长
a
和b
,要求计算出其斜边边长。 - 要求使用
math
模块,并输出计算结果,结果保留小数点后三位小数。
测试说明
本关的测试文件是src/step1/module.py
,测试过程如下:
- 平台自动编译生成
module.exe
; - 平台运行
module.exe
,并以标准输入方式提供测试输入; - 平台获取
module.exe
输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step1/module.py
的样例测试集:
测试输入:3
4
预期输出:5.000
测试输入:1.5
3.9
预期输出:4.179
测试输入:9
12
预期输出:15.000
测试输入:3.71
4.26
预期输出:5.649
开始你的任务吧,祝你成功!
有些时候,我们需要一种危机,来激发我们自身的潜能,唤醒我们内心深处被掩藏已久的人生激情,来实现人生的最大价值。
如果你觉得这一关的内容对你有帮助,请你在下面点赞。
参考答案
#coding=utf-8
import math
#输入正整数a和b
a = float(input())
b = float(input())
# 请在此添加代码,实现编程要求
#********** Begin *********#
c = math.sqrt(pow(a, 2) + pow(b, 2))
print("%.3f" % c)
#********** End **********#
以上是关于Python入门之模块——第1关:模块的定义的主要内容,如果未能解决你的问题,请参考以下文章
Python入门之函数结构——第3关:函数的使用范围:Python作用域
Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用
Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用