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

第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       # 导入模块random

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

执行结果:
在这里插入图片描述

13.3.2 choice()

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

程序实例:

import random   # 导入模块random

prizes = ['一等奖', '二等奖', '三等奖', '特等奖', '安慰奖']
print("本次开奖结果:",random.choice(prizes))

执行结果:
在这里插入图片描述

13.3.3 shuffle()

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

程序实例:

import random   # 导入模块random

cards = ['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       # 导入模块random

lotterys = 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         # 导入模块time


min, 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, "秒")
        break
    elif num < answer:
        print("再大一点")
    else:
        print("再小一点")

执行结果:
在这里插入图片描述

13.4.2 sleep()

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

程序实例:

import time     # 导入模块time

fruits = ['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             # 导入模块time

print(time.asctime())   # 列出当前系统时间

执行结果:

Mon Feb  1 12:19:18 2021

13.4.4 localtime()

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

程序实例:

import time         # 导入模块time

localTime = 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 calendar

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

执行结果:

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

13.5.2 month()

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

程序实例:

import calendar

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

执行结果:
在这里插入图片描述

13.5.3 calendar()

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

程序实例:

import calendar

print(calendar.calendar(2021))      # 列出2021年的年历

执行结果:
在这里插入图片描述


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


往期文章:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值