文章目录

  • 第13章 模块的设计与应用
    • 13.1 将自建的函数存储在模块中
      • 13.1.1 准备工作
      • 13.1.2 创建函数内容的模块
    • 13.2 应用函数模块
      • 13.2.1 import 语句
      • 13.2.2 from ... import 语句
      • 13.2.3 from ... import * 语句
    • 13.3 随机数random模块
      • 13.3.1 randint()
      • 13.3.2 choice()
      • 13.3.3 shuffle()
      • 13.3.4 sample()
    • 13.4 时间time模块
      • 13.4.1 time()
      • 13.4.2 sleep()
      • 13.4.3 asctime()
      • 13.4.4 localtime()
    • 13.5 日期calendar模块
      • 13.5.1 isleap()
      • 13.5.2 month()
      • 13.5.3 calendar()

第13章 模块的设计与应用

13.1 将自建的函数存储在模块中

一个大型程序通常是由许多的函数或类组成的,为了让程序的功能明确以及增强程序的可读性,我们可以将建立的函数或类存储成模块形式的独立文档,方便引用。

13.1.1 准备工作

假设有一个程序内容是制作冰淇淋与饮料的输出,如下所示。

def make_icecream(*toppings):# 列出制作冰淇淋的配料print("冰淇淋制作所需配料如下:")for topping in toppings:print("--- ", topping)def make_drink(size, drink, num):# 输入饮料规格(如小杯、中杯、大杯)与类型(如可乐、雪碧)print("需配送饮料:")print("%s %s x %d" % (drink, size, num))make_icecream('蓝莓酱')
make_icecream('草莓酱', '巧克力')
make_drink('大杯', '可乐', 2)

执行结果:

冰淇淋制作所需配料如下:
---  蓝莓酱
冰淇淋制作所需配料如下:
---  草莓酱
---  巧克力
需配送饮料:
可乐 大杯 x 2

13.1.2 创建函数内容的模块

假设需要在其它程序中调用make_icecream()和make_drink(),此时可以将这两个函数创建成模块。模块的扩展名与Python程序文档一样,为.py。

将make_icecream()和make_drink()创建成一个模块,保存为makefood.py。

# makefood.py
def make_icecream(*toppings):# 列出制作冰淇淋的配料print("冰淇淋制作所需配料如下:")for topping in toppings:print("--- ", topping)def make_drink(size, drink, num):# 输入饮料规格(如小杯、中杯、大杯)与类型(如可乐、雪碧)print("需配送饮料:")print("%s %s x %d" % (drink, size, num))

13.2 应用函数模块

应用函数模块主要有以下几种方式:

  • 导入模块 ==> import 语句
  • 导入模块内的函数 ==> from … import 语句
  • 导入模块内的所有函数 ==> from … import * 语句

13.2.1 import 语句

要导入创建的模块,只需在程序内执行import语句,语法如下:

import module    # module为模块名称

程序中引用模块的函数语法为:模块名称.函数名

程序实例:导入模块makefood.py。

import makefood     # 导入模块mdkefood.py# 引用makefood.py中的方法
makefood.make_icecream('蓝莓酱')
makefood.make_icecream('草莓酱', '巧克力')
makefood.make_drink('大杯', '可乐', 2)

执行结果:

冰淇淋制作所需配料如下:
---  蓝莓酱
冰淇淋制作所需配料如下:
---  草莓酱
---  巧克力
需配送饮料:
可乐 大杯 x 2

13.2.2 from … import 语句

如果只是想要导入模块中的部分指定的函数,则可以使用from语句,语法如下:

from 模块名称 import 函数名称 # 导入多个函数时,函数名之间用“,”隔开

程序实例:

from makefood import make_icecream, make_drink  # 导入模块makefood.py中的函数make_icecream()和make_drink()# 引用已导入的函数,可省略模块名称
make_icecream('草莓酱')
make_icecream('草莓酱', '巧克力')
make_drink('中杯', '雪碧', 1)

执行结果:

冰淇淋制作所需配料如下:
---  草莓酱
冰淇淋制作所需配料如下:
---  草莓酱
---  巧克力
需配送饮料:
雪碧 中杯 x 1

13.2.3 from … import * 语句

如果想要导入模块内的所有函数,可使用如下声明:

from 模块名称 import *

程序实例:

from makefood import *  # 导入模块makefood.py中的所有函数# 引用已导入的函数,可省略模块名称
make_icecream('草莓酱')
make_icecream('草莓酱', '巧克力')
make_drink('中杯', '啤酒', 1)

执行结果:

冰淇淋制作所需配料如下:
---  草莓酱
冰淇淋制作所需配料如下:
---  草莓酱
---  巧克力
需配送饮料:
啤酒 中杯 x 1

13.3 随机数random模块

所谓的随机数是指平均散布在某区间的数字。

13.3.1 randint()

randint() 方法可以随机产生指定区间内的整数,它的语法如下:

randint(min, max) # 产生min与max之间的整数值

程序实例:

import random       # 导入模块randommin, max = 1, 10
answer = random.randint(min, max) # 随机产生min与max之间的整数
while True:num = int(input("猜一个1 ~ 10之间的整数:"))if num == answer:print("恭喜答对啦~~")breakelif num < answer:print("再大一点")else:print("再小一点")

执行结果:

13.3.2 choice()

choice() 方法可以在一个列表中随机返回一个元素。

程序实例:

import random   # 导入模块randomprizes = ['一等奖', '二等奖', '三等奖', '特等奖', '安慰奖']
print("本次开奖结果:",random.choice(prizes))

执行结果:

13.3.3 shuffle()

shuffle() 方法可以将列表元素重新排列。

程序实例:

import random   # 导入模块randomcards = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']for i in range(5):random.shuffle(cards)       # 将顺序打乱重新排列print(cards)

执行结果:

13.3.4 sample()

sample() 的语法如下:

sample(name_list, num)   # 随机返回列表name_list中的num个元素

程序实例:

import random       # 导入模块randomlotterys = random.sample(range(1,50), 7)    # 7组号码
specialNum = lotterys.pop()   # 特别号print("本期大乐透号码:", end="")
for lottery in sorted(lotterys):print(lottery, end=" ")
print("\n特别号:%d" % specialNum)

执行结果:

本期大乐透号码:11 14 41 43 46 47
特别号:2

13.4 时间time模块

13.4.1 time()

time() 方法可以返回自1970年1月1日0时0分0秒以来的秒数(时间戳)。

程序实例:

import random       # 导入模块random
import time         # 导入模块timemin, max = 1, 10
answer = random.randint(min, max) # 随机产生min与max之间的整数
startTime = int(time.time())    # 起始秒数,时间戳
while True:num = int(input("猜一个1 ~ 10之间的整数:"))if num == answer:print("恭喜答对啦~~")endTime = int(time.time())  # 结束秒数print("共耗时:", endTime - startTime, "秒")breakelif num < answer:print("再大一点")else:print("再小一点")

执行结果:

13.4.2 sleep()

sleep() 方法可以让工作暂停,参数单位为秒。

程序实例:

import time     # 导入模块timefruits = ['apple', 'banana', 'orange', 'peach', 'pear']
for fruit in fruits:print(fruit, "当前时间戳:", int(time.time()))time.sleep(1)       # 暂停1s

执行结果:

apple 当前时间戳: 1612153005
banana 当前时间戳: 1612153006
orange 当前时间戳: 1612153007
peach 当前时间戳: 1612153008
pear 当前时间戳: 1612153009

13.4.3 asctime()

asctime() 方法会以可阅读方式列出当前系统时间。

程序实例:

import time             # 导入模块timeprint(time.asctime())   # 列出当前系统时间

执行结果:

Mon Feb  1 12:19:18 2021

13.4.4 localtime()

localtime() 方法可以返回当前时间的结构数据,所返回的结构可以用索引方式获得个别内容。

程序实例:

import time         # 导入模块timelocalTime = time.localtime()
print(localTime)            # 列出当前系统时间
print(type(localTime))
print("年份:", localTime[0])
print("月份:", localTime[1])
print("天数:", localTime[2])         # 这个月的第几天
print("时:", localTime[3])
print("分:", localTime[4])
print("秒:", localTime[5])
print("星期几:", localTime[6])         # 0代表星期一,以此类推
print("第几天:", localTime[7])            # 该年份的第几天
print("夏令时间:", localTime[8])       # 1代表是夏令时间,0代表不是

执行结果:

13.5 日期calendar模块

13.5.1 isleap()

isleap() 方法可以判断所给出的年份是否为闰年,是则返回True,否则返回False。

程序实例:

import calendarprint("2020年是否为闰年:", calendar.isleap(2020))
print("2021年是否为闰年:", calendar.isleap(2021))

执行结果:

2020年是否为闰年: True
2021年是否为闰年: False

13.5.2 month()

month() 方法完整的参数为:month(year,month),可以列出指定年份月份的月历。

程序实例:

import calendarprint(calendar.month(2021, 1))  # 列出2021年1月份的月历

执行结果:

13.5.3 calendar()

calendar() 方法完整的参数为:calendar(year),可以列出指定年份的年历。

程序实例:

import calendarprint(calendar.calendar(2021))      # 列出2021年的年历

执行结果:


参考文章链接:
https://www.runoob.com/python3/python3-module.html


往期文章:

  • 《Python零基础快乐学习之旅》学习笔记2——认识变量与基本数学运算
  • 《Python零基础快乐学习之旅》学习笔记3——Python的基本数据类型
  • 《Python零基础快乐学习之旅》学习笔记4——基本输入与输出
  • 《Python零基础快乐学习之旅》学习笔记5——程序的流程控制使用if语句
  • 《Python零基础快乐学习之旅》学习笔记6——列表(list)
  • 《Python零基础快乐学习之旅》学习笔记7——循环设计
  • 《Python零基础快乐学习之旅》学习笔记8——元组(tuple)
  • 《Python零基础快乐学习之旅》学习笔记9——字典(dict)
  • 《Python零基础快乐学习之旅》学习笔记10——集合(set)
  • 《Python零基础快乐学习之旅》学习笔记11——函数设计
  • 《Python零基础快乐学习之旅》学习笔记12——类-面向对象

《Python零基础快乐学习之旅》学习笔记13——模块的设计与应用相关推荐

  1. 《Python零基础快乐学习之旅》学习笔记4——基本输入与输出

    第4章 基本输入与输出 4.1 Python的辅助说明help() help()函数可以列出某一个Python的指令或函数的使用说明. >>> help(print) Help on ...

  2. 《Python零基础快乐学习之旅》学习笔记3——Python的基本数据类型

    第3章 Python的基本数据类型 1. 数值数据类型 1.1 整数与浮点数的运算 1.2 强制数据类型的转换 1.3 数值运算常用的函数 2. 布尔值数据类型 3. 字符串数据类型 3.1 字符串的 ...

  3. python从零基础到项目实战怎么样-2018完整Python零基础到项目精通的学习书籍

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏.Python编程语言的流行直线上升,如何学习好Py ...

  4. 腾讯技术官发布Python零基础就业宝典,想学习Python的朋友有福了

    近几年来,互联网行业变化非常大,除了龙头企业的更替,"裁员潮""失业潮"也不断掀起,尤其是对于年纪太大的程序员真的是不太友好.但是,根据数据统计表明,自2018 ...

  5. python零基础自学书籍-2018完整Python零基础到项目精通的学习书籍

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏.Python编程语言的流行直线上升,如何学习好Py ...

  6. python编程初学指南电子书_Python编程初学者指南书籍和Python零基础快乐学习之旅...

    如果你刚刚接触Python编程,而且正在寻找一本实用的教程,那么这本书为你量身打造.通过阅读本书,你不仅会学到很多实用的Python编程知识,还将懂得如何在实际工作中运用这些知识.本书各个章节都配有大 ...

  7. python快乐编程—基础入门-Python零基础快乐学习之旅(K12实战训练)

    内容简介 作者简介 第1章 基本概念 1-1 认识Python 1-2 Python的起源 1-3 Python语言发展史 1-4 Python的应用范围 1-5 跨平台的程序语言 1-6 系统的安装 ...

  8. python零基础好学吗-如何从零开始学习Python,零基础学python难吗

    Python并不难学,它诞生至今已经过25个年头,但相对于其他语言,它更加易学.易读,非常适合快速开发,Python编程简单直接,更适合初学编程者. 那么,如何从零开始学习python呢? 可以分为这 ...

  9. python零基础对main.py的学习(DROO)

    在Python中处理Matlab数据时,需要用到sicpy.io**;** sicpy.io提供两个函数: 1.loadmat: loadmat(file_name[, mdict, appendma ...

最新文章

  1. Asynchronous Processing Basics || Use Future Methods
  2. IO-3(Reader、Writer、编码、FileReader、FileWriter)
  3. mysql upload_关于mysql数据库里的 upload子查询问题
  4. 11月中30个精心设计的网站案例精选
  5. LeetCode 1974. 使用特殊打字机键入单词的最少时间
  6. leetcode 回文数
  7. layer.open 强化1
  8. php json 压缩传输,php json数据使用gzip压缩输出
  9. bzoj 5302: [Haoi2018]奇怪的背包
  10. js60秒倒计时防刷新
  11. 君正4750开发板使用日记2-Linux环境搭建与内核编译
  12. 2005 mysql连接字符串_怎么用c#远程连接sql server2005,连接字符串怎么写
  13. 使用LitePal查询数据
  14. C语言学习书籍推荐!(附自学课程)
  15. 想网站与目标站点同步更新?利用采集侠轻松实现
  16. C++独立游戏存档模块设计 VERSION_1.7
  17. 74ls390设计任意进制计数器_《设计任意进制计数器》的实验报告
  18. hist 在matlab中的含义,matlab中hist函数的用法_matlab中hist函数
  19. HCIP-Datacom 分解实验1:访问控制列表
  20. 【软件工具】软件测试

热门文章

  1. 不小心关闭进程导致电脑黑屏已解决
  2. 深度优先搜索解决八数码难题
  3. STM32的八种工作模式
  4. Error: (vlog-7) Failed to open design unit file “d:
  5. 记一次 Centos7 安装部署 gogs-v0.12.1
  6. VPD-Forcing10年循环时间步长匹配问题
  7. 小学计算机管理员竞选,小学生图书管理员竞选演讲稿范文(通用5篇)
  8. 10 综合应用案例:“烤地瓜”
  9. gaussian 初步 input file 的编写
  10. 爬虫---ins注册脚本