第15关精华笔记pdf版——同学记得打开电脑浏览器下载哦! 第16关精华笔记.pdf 0.4MB
什么是模块
最高级别程序组织单元,通常我们调用的模块都是写好的py文件,里面有各种变量,函数,类 等可执行的语句
模块调用语法
例1:
import random
random.randint()
# 代码里面调用模块里面方法的格式,模块名.方法名,这里面randint是模块里面写好的方法,我们学会调用就ok,明白方法的功能
import 模块名 as 简写别名:
例2:
import random as ra
ra.randint()
# 后面就可以利用ra代表random
一行导入多个模块:
例3:
import a,b,c
# (表示同时导入a,b,c三个模块)
从模块中只导入一个指定部分:
from...import....
例4:
判断文件能否被当成模块调用
if __name__ == '__main__':
第16关课后联系参考答案
练习-时间记录器-参考
【参考】
import time
input('欢迎使用“时间管理器”!请按回车继续。')
while True:
task_name = input('请输入任务名:')
task_time = int(input('你觉得自己至少可以专注这个任务多少分钟?输入 N 分钟'))
input('此次任务信息:\n我要完成的任务:%s\n我至少要专注:%d分钟\n按回车开始计时:'%(task_name,task_time))
start = time.time() # 开始计时
start_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) # 格式化日期
# for t in range(task_time*60,0,-1): # 实际代码:分钟转成秒要乘60,用-1来倒计时。
for t in range(task_time,0,-1):
info = '请专注任务,还要保持专注 ' + str(t) + ' 秒哦!'
print(info,end='')
print('\b'*(len(info)*2),end='',flush=True)
time.sleep(1)
print('你已经专注了 %d 分钟,很棒~再加把劲,完成任务!'%task_time) # 倒计时后,才继续运行之后的代码。
# 询问任务是否完成
task_status = input('请在任务完成后按输入y:')
if task_status == 'y':
end = time.time() # 一定用户按了 y,就记下结束时间。
end_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) # 日期格式化
actual_time = int((end -start)/60) # 始末时间相减,从秒换算到分,除以60。
start_end = start_time + '——' + end_time + '\n'
with open('timelog3.txt','a', encoding = 'utf-8') as f:
f.write(task_name + ' 的预计时长为:' + str(task_time) + '分钟\n')
f.write(task_name + ' 的实际时长为:' + str(actual_time) + '分钟,具体时间为:' + start_end)
again = input('建立一个新任务请按 y, 退出时间日志记录器请按 q:')
if again == 'q':
break
else:
print('抱歉,你的输入有误。请重启时间记录器。')
print('愿被你善待的时光,予你美好的回赠。')
练习-再出古诗默写题-参考
练习目标
通过这个练习,我们会用模块去实现上一关卡的选做题“古诗默写”。
练习要求
这个练习,我们会接触一个新的Python内置模块:os(文件/目录方法)。
这个模块中的许多方法,配合文件读写以及数据处理,可以让一些工作得以自动化。
当然,在一个练习里,我们不会奢求那么多,先体验一下os模块里的3个方法即可。
【讲解】
明确目标很重要(所以重复三遍)。
做到后面的步骤,可再点开左侧的“练习介绍”查看。
我们先回顾一下不用模块是如何出古诗默写题的
【提示】
os 模块中的替换方法
可能你会觉得这么操作更麻烦,但假设要你处理大量的文档,模块会让你的代码更清晰更简洁。
细心一些,你可以的!
【解答】
import os
list_test = ['一弦一柱思华年。\n','只是当时已惘然。\n']
with open ('poem2.txt','r') as f:
lines = f.readlines()
with open('poem2_new.txt','w') as new:
for line in lines:
if line in list_test:
new.write('____________。\n')
else:
new.write(line)
os.replace('poem_new.txt', 'poem1.txt')
另外,建议你在本地编辑器试一试下面的这些方法:
os.getcwd() # 返回当前工作目录
os.listdir(path) # 返回path指定的文件夹包含的文件或文件夹的名字的列表
os.mkdir(path) # 创建文件夹
os.path.abspath(path) # 返回绝对路径
os.path.basename(path) # 返回文件名
os.path.isfile(path) # 判断路径是否为文件
os.path.isdir(path) # 判断路径是否为目录
注: dir为单词directory(目录)的缩写。