目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务5.7  模块


模块和函数是程序设计过程中,利用率最高的重要对象。模块是包含变量、函数或者类的程序文件。函数是具有特定功能的程序。

模块(函数)分为系统模块(函数)和用户模块(函数)。

用户不但可以直接使用Python提供的系统自带模块(函数),而且可以设计满足实际需要的用户定义模块(函数)。

充分利用模块及其函数是设计高质高效程序的最有效的手段。

Python的最大优势是支持大量丰富的第三方模块。

模块是包含变量、函数和类定义的程序。一个模块通常包含若干函数。在python中,不但可以直接使用系统提供的标准模块,而且可以设计适合实际应用的用户定义模块。

一、创建模块

创建模块:创建一个Python程序文件

把变量(赋值语句)、函数定义和类定义等写入一个程序文件。 

例   创建包含三个变量iint=6、ireal=6.6和icom=6+6j,四个函数def wel(x)(欢迎函数)、def happy()(快乐函数)、def nar(i,j,k)(水仙花数函数)和def rose(i,j,k,l)(四叶玫瑰数函数)写入模块imod.py。

#imod.py     pro0910.py

iint=6

ireal=6.6

icom=6+6j

def wel(x):

    print('welcome...,',x)

def happy():

    print('Happy You!')

def nar(i,j,k):

    if i*i*i+j*j*j+k*k*k==i*100+j*10+k:

        return i*i*i+j*j*j+k*k*k

    else:

        return -1

def rose(i,j,k,l):

    if i*i*i*i+j*j*j*j+k*k*k*k+l*l*l*l==i*1000+j*100+k*10+l:

        return i*i*i*i+j*j*j*j+k*k*k*k+l*l*l*l

    else:

        return -1

在完成模块文件的建立之后,需要把模块文件(如:imod.py)放到Python的一个搜索路径(默认:…Python36\lib)中。

如果不知道当前的搜索路径,则可以使用如下方法查看:

import sys

sys.path

>>> import sys

>>> sys.path

运行如下语句,验证imod.py是否可以使用

>>> import imod

>>> print(imod.iint,imod.ireal,imod.icom)

6 6.6 (6+6j)

>>> imod.happy()

Happy You!

>>> print(imod.happy())

Happy You!

None

>>> imod.wel('Marry')

'welcome..., Marry!'

>>> print(imod.wel('Marry'))

运行如下语句,验证imod.py是否可以使用

welcome..., Marry!

>>> print(imod.nar(1,5,3))

153

>>> print(imod.nar(1,5,2))

-1

>>> print(imod.rose(8,2,0,8))

8208

>>> print(imod.rose(8,2,0,9))

-1

不难看出,模块imod.py可以使用。

二、使用模块

使用模块,可以使用import,把模块导入到当前的程序中

import 模块[,模块,…,模块]:导入一个(或多个)模块。

import 模块 as 新名:按照新名导入模块。

from 模块 import *:导入模块。使用时,可以省略模块名前缀。

from 模块 import 对象:从模块中导入对象。

from 模块 import 对象 as 新名:按照新名,从模块中导入对象。

例如:验证如下语句。分析import的用法。

>>> import imod

>>> print(imod.icom)

(6+6j)

>>> import imod as im

>>> print(im.icom)

(6+6j)

>>> from imod import *

>>> print(icom)

(6+6j)

>>> from imod import icom

>>> print(icom)

(6+6j)

>>> from imod import icom as ic

>>> print(ic)

(6+6j)

导入模块之后,可以使用dir(),查看模块属性。

>>> import imod

>>> dir(imod)

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'happy', 'icom', 'iint', 'ireal', 'nar', 'rose', 'wel']

不难看出,模块imod中,除了包含变量和函数之外,还包含若干以双下划线开始和结束的模块的全程变量,为用户提供模块的相关信息。如:__doc__、__file__、__name__、__package__和 、__loader__等。

例如:验证如下语句。分析模块全程变量的用法和信息。

>>> imod.__builtins__

{'__name__': 'builtins',

 ……,

 '_': None}

>>> imod.__cached__

'D:/Python36/Lib\\__pycache__\\imod.cpython-36.pyc'

>>> imod.__doc__

>>> imod.__file__

'D:/Python36/Lib\\imod.py'

>>> imod.__loader__

<_frozen_importlib_external.SourceFileLoader object at 0x0000021416626F98>

>>> imod.__name__

'imod'

>>> imod.__package__

''

>>> imod.__spec__

ModuleSpec(name='imod', loader=<_frozen_importlib_external.SourceFileLoader object at 0x0000021416626F98>, origin='D:/Python36/Lib\\imod.py')

>>> imod.happy()

Happy You!

显然,通过查看属性,可以帮助用户详细的了解模块中的变量、函数和类等信息。从而帮助用更好的使用模块。

思考:导入sys,os,time,datetime等模块,并查看其属性。

对于导入的模块,在详细了解了模块中的变量、函数和类等之后,就可以按照前述的程序设计方法和后续的类使用方法,来使用模块,从而完成用户自己的程序设计,进而实现相应的数据处理与分析。

例5.20 利用模块imod.py,完成如下任务:

(1)计算并输出三个变量的和值。

(2)输入姓名,输出对他的欢迎和快乐问候。

(3)输出所有水仙花数。

(4)输出所有四叶玫瑰花数。

#pro0520.py

import imod

s=input('输入姓名:')

s=imod.wel(s)

print(s)

imod.happy()

v=imod.iint+imod.ireal+imod.icom

print('Sum=',v)

print('水仙花数:')

for i in range(100,1000):

    t=str(i)

    if imod.nar(int(t[0]),int(t[1]),int(t[2]))==-1:

        continue

    else:

        print(imod.nar(int(t[0]),int(t[1]),int(t[2])),end='  ')

print()

print('四叶玫瑰花数:')

for i in range(1000,10000):

    t=str(i)

    if imod.rose(int(t[0]),int(t[1]),int(t[2]),int(t[3]))==-1:

        continue

    else:

        print(imod.rose(int(t[0]),int(t[1]),int(t[2]),int(t[3])),end='  ')

print()