一、上节课回顾
(一)什么是文件
操作系统提供的虚拟单位,用来存储信息
(二)文件打开的步骤
- 找到文件的路径 file_path
- 打开文件open()
- 读取/修改文件f.read()/f.write()
- 保存文件flush
- 关闭文件f.close()
(三)打开文件的3种模式+2种方式
- r:只读不写入
- w:只写不读,清空文件后写入
a:追加写入
- b:二进制
t:文本
不建议使用
- r+:既可读也可写
- w+:既可读也可写(清空)
- a+:既可读也可写(追加)
(四)with管理上下文
f = open()
f.read()
f.close()
#自动关闭文件
with open() as f:
f.read()
(五)爬虫原理
通过浏览器发送请求拿到内容,通过requests模块模拟浏览器发送请求拿到内容
(六)爬虫的流程
- 发送请求(填入一个url)
- 获取内容
- 筛选数据
(七)requests模块的使用
import requests
res = requests.get(url)
#文本
re.text
#二进制
re.content
(八)re模块
re.S全局搜索
re.findall('正则匹配规则',re.text,re.S)
#正则匹配规则
.*?
二、if判断
(一)单分支结构
格式:
if 条件:
print()#条件成立后执行该代码
(二)双分支结构
if 条件:
print()#条件成立执行
else:
print()#条件不成立执行
(三)多分支结构
if 条件1:
print()#条件1成立执行
elif 条件2:
print()#如果条件1不成立,条件2成立执行
elif 条件3:
print()#如果条件1和条件2都不成立,条件3成立执行
IPO
input输入(定义变量)
process处理(逻辑判断)
output(输出)
三、for循环
(一)range方法
for i in range (1,32):
print(i)
(二)格式化输出
name = 'wuyong'
print(f'{name} handsome)
字符串前面加上f,{}就有了特殊含义
(三)for循环嵌套
内层循环全部走完,才会走一次外层循环,每次走外层循环,内层循环都会重置
四、习题
输入从2001到2020每天刷牙的记录
for y in range(2001,2021):#年循环
for i in range(1,13):#月循环
for j in range(1,32):#日循环
if i == 2:#2月判断
if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:#判断闰年(2月有29天)
if j == 30:
break
else:#判断平年(2月有28天)
if j == 29:
break
if i in [4,6,9,11]: #i == 4 or i == 6 or i == 9 or i == 11:#4月\6月\9月\11月判断(30天)
if j == 31:
break
print(f'{y}年{i}月{j}日刷牙')