前言

前面的文章中,有许多地方都用到了Python的模块,这个到底是个什么神奇的东西呢?让我们来一起盘它!

一、什么是模块

在前几节中,我们已经接触了一些模块:math、random、time等,它们为什么是模块,什么是模块呢?

其实模块就是一个Python文件,一个.py结尾的Python文件。听到这里,萌新肯定蒙圈了,那岂不是我写的每一个Python文件都是模块了?没错!当一段代码需要被重复利用时,你就可以将其作为模块来使用,优点如下:

  • 模块让你更有逻辑的组织你的代码块

  • 将代码写成模块可以是代码重复利用

二、使用模块

Python中有许多内置模块,我们以math模块为例来介绍如何使用模块

1.直接导入   import

导入math模块

In [1]: import math        # 导入math模块

In [2]: math.sin(30)       # 使用模块包含的方法是用  模块.方法
Out[2]: -0.9880316240928618 In [3]: math.cosh(60)
Out[3]: 5.710036949078421e+25 In [4]: math.sin(1)
Out[4]: 0.8414709848078965

2.间接导入    from......import......

导入math模块的sin方法

In [1]: from math import sin   # 只导入math模块的sin方法

In [2]: sin(30)                # 使用时直接用方法名即可
Out[2]: -0.9880316240928618 In [3]: math.sin(30) # 这种方法是错误的
---------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-3-9c4797948dd7> in <module>
----> 1 math.sin(30) NameError: name 'math' is not defined

导入math模块的sin和cos方法

In [9]: from math import sin, cos   # 将导入的多个方法用逗号隔开即可

导入math模块的全部方法

In [4]: from math import *   # 使用Python中的通配符 * 即可导入math模块的全部方法

In [5]: sin(30)              # 使用时也是直接用方法名
Out[5]: -0.9880316240928618 In [6]: cos(30) # 可以看到math中所有的方法都可以用了
Out[6]: 0.15425144988758405 In [7]: sqrt(4)
Out[7]: 2.0

3.非标准模块的导入     from 路径 import 方法

有时可能需要导入的方法不是标准模块(系统内置模块称为标准模块),可能在其他地方,导入方法有绝对路径和相对路径导入两种,先来弄清绝对路径和相对路径:

绝对路径:从盘符开始的路径,比如C文件在E盘中的A文件夹下的B文件夹中,那么C文件的绝对路径为:E:\A\B\C

相对路径:从当前目录开始的路径,比如我现在在B文件夹中,那么C文件的相对路径为:.\C ,在相对路径的表示中,.代表当前目录,..代表上级目录

绝对路径导入:

In [10]: from E:/A/B/C import a   # Python中使用/作为路径分隔符

上面这段代码的解释:导入E盘A文件夹下的B文件夹中的C文件的a方法

使用绝对路径将其导入的方法为 from 文件的绝对路径 import 文件的方法

相对路径导入:

In [11]: from ./C import a

上面这段代码的解释:导入当前目录下的C文件中的a方法

使用相对路径将其导入的方法为 from 文件的相对路径 import 文件的方法

三、安装第三方模块

1.使用源码安装

第一步:下载安装setuptools模块,下载地址为setuptools-40.7.3.zip,之后解压后,在当前路径的命令行下输入 python setup.py install ,等待安装完毕

第二步:下载想要安装模块的源代码,大多数模块都可以在官网找见:https://pypi.org,下载源码后解压,在当前路径的命令行下输入 python setup.py install ,等待安装完毕,如果出现依赖问题,则安装提示先安装依赖模块,直到安装成功

第三步:验证是否安装成功,打开IPython的交互界面,输入 import 模块名验证,如不报错则安装成功

注意:想要使用源码安装,必须安装第一步的setuptools模块

2.使用pip安装(推荐使用pip安装)

通常在安装完Python3以后会自动将pip安装完毕,先来验证下,在命令行输入pip --version,如果输入pip版本等信息,则证明拥有pip,否则请安装源码安装的方式安装pip

第一步:在命令行中输入 pip install 模块名 ,之后pip会自动下载并安装模块,等待安装完毕

第二步:验证是否安装成功,打开IPython的交互界面,输入 import 模块名验证,如不报错则安装成功

注意:如果安装完pip后,在命令行输入pip --version后显示没有这个命令,则需要将pip加入环境变量

3.使用包管理工具安装(Linux平台、Mac平台)

在Linux平台下,Centos使用yum,Ubuntu使用apt-get

在Mac平台下,使用HomeBrew包管理工具

四、自己编写模块

在Python中,我们自己也是可以编写模块的。

自己写一个speak模块,里面有chinese和english两种方法,在run.py文件中调用这两种方法:

 # speak.py
# speak模块 def chinese():
print('我是小绵羊') def english():
print('I am MinuteSheep')
 # run.py
# run.py与speak.py在同一目录下 import speak speak.english()
speak.chinese()
 # 运行结果

 I am MinuteSheep
我是小绵羊

目录图片:

#14 Python模块的更多相关文章

  1. 14.python模块之subprocess

    我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell.那么我们如何通过Python来完成这些命令行指令的执行呢?另外,我们应该知道的是命令行指令的执行通常有两 ...

  2. Python学习(14)模块一

    目录 Python 模块 import语句 from ... import 语句 from ... import * 语句 定位模块 PYTHONPATH变量 命名空间和变量 dir()函数. glo ...

  3. 14.Python略有小成(自由模块)

    Python(模块) 一.模块定义与分类 ​ 我们说一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,这个文件就称之为模块,模块,就是一些列常用功能的集合体,模块就是文件,存放一堆常用的函 ...

  4. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  5. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  6. python模块学习心得

    初始模块 1.什么是模块 模块是用来实现某项功能的一大堆代码,为什么会有模块呢?过程式编程的时候为了减少程序员编程代码的重复性,就利用函数的调用减少了代码的重复性,但是某些时候程序会过于的庞大,我们会 ...

  7. 7.python模块补充

    此文章是对上节文章模块的补充 一,xml模块 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.xml的格式如下 ...

  8. python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...

  9. python模块之paramiko

              46.python模块之paramiko   SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

随机推荐

  1. python08内置函数

    https://www.cnblogs.com/xiao1/p/5856890.html 1 .all(可迭代对象),对每个元素进行布尔运算,全部为真,函数结果就为真,否则为假 参数为一个整体的情况例 ...

  2. linux 启动tomcat卡很久的问题

    解决办法:打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容: securerandom.source=file:/dev/random 替 ...

  3. 网页打印样式CSS

    相信大多数的前端工程师都是处理显示屏上面的设计,用到最多的计量单位就是px,但是有些时候,我们难免也会有打印的需求,比如一个电商平台的“物流配送打印单”,“打印订单”等等可能都是需要从网友上打印出来的 ...

  4. php,mysql存储过程的简单例子

    一.连接mysql 使用phpmyadmin: 打开test数据库: 二.创建存储过程 参数如图. 三.php中调用存储过程 <?php $user = "root"; // ...

  5. linux下设置计划任务执行python脚本

    linux下设置计划任务执行python脚本 简介 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自 ...

  6. docker安装redis 指定配置文件且设置了密码

    ---------首先,所有docker的命令,都可以用 docker help 来查询,这个挺好的,我反正记不住辣么多命令呀.   1.直接pull 官方镜像吧.没啥说的,这样方便省事.如果你非要用 ...

  7. uniGUI中Cookies使用中文汉字的方法(使用EncodeString函数编码)

    uniGUI中Cookies使用中文汉字的方法(使用EncodeString函数编码)   在目前的UniGUI(ver:0.88)中使用UniApplication.Cookies.SetCooki ...

  8. 【转】vim 命令

    Vim命令合集 建议直接看原文:(排版有些乱) 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接 ...

  9. iOS逆向之Reveal

    Reveal是一个强大的UI分析工具,使用它可以查看各个界面的视图层级,在解决界面显示问题时非常有用.它最大的特点就是非常直观,查看UI布局的时候非常方便. 我们知道,Reveal官网提供的方法只能监 ...

  10. Interview Common Sample Codes

    1. Quick Sort: int partition(int A[], int p, int r) { int x = A[r]; // Pivot element int i = p - 1; ...