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文件的代码,实现相应的功能。具体要求如下:

  • 输入直角三角形的两个直角边的边长ab,要求计算出其斜边边长。
  • 要求使用math模块,并输出计算结果,结果保留小数点后三位小数。

测试说明

本关的测试文件是src/step1/module.py,测试过程如下:

  1. 平台自动编译生成module.exe;
  2. 平台运行module.exe,并以标准输入方式提供测试输入;
  3. 平台获取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入门之模块——第2关:内置模块中的内置函数

Python入门之函数结构——第3关:函数的使用范围:Python作用域

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用

Python入门之经典函数实例——第2关:Lambda函数 - 匿名函数的使用

Python入门之函数调用——第2关:函数正确调用 - 得到想要的结果

Python入门之函数结构——第1关:函数的参数 - 搭建函数房子的砖