周末午后,戈戈正坐在书桌前研读《传习录》,房间里时不时响起阳明心学箴言。
忽然敲门声响起,小沐提着电脑匆匆进来,脸上满是困惑:“戈戈,我被Python数组类型搞晕了,你快帮我看看!”
戈戈合上书,笑着示意他坐下:“别急,正好我看了半天心学,看看代码休息一下。”。
1、心学篇(数组类型)
戈戈:你未看此花时,此花与汝心同归于寂。你来看此花时,则此花颜色一时明白起来。便知此花不在你的心外。
小沐:修道了嚒,神神叨叨的…
1.1 列表
Python列表是常用可变有序序列,用[]包裹多类型元素,支持增删改查,灵活存储数据。
# 列表示例:存储多种类型数据,演示基础使用
# 可添加、删除、修改元素,适配多场景数据存储
student_info = ['张三', 20, '计算机专业', 85.5]
print("学生基础信息:", student_info)
# 演示添加元素
student_info.append('Python课程')
print("添加课程后:", student_info)
1.2 元组
Python元组以()定义,与列表形似但元素不可修改,占用内存少。
# 元组示例:存储固定不变的数据(如商品规格)
# 元素不可修改,适合存储无需变动的常量数据
product_spec = ('笔记本电脑', '15.6英寸', 8, 512, 4999)
print("电脑产品规格:", product_spec)
# 演示读取元组元素(无法修改)
print("电脑价格:", product_spec[4], "元")
1.3 字典
Python字典是键值对可变容器,用{}存储,通过唯一key映射value。
# 字典示例:用键值对存储映射关系(如学生成绩)
# 通过key快速查询value,灵活存储关联数据
student_score = {'语文': 92, '数学': 88, '英语': 95, 'Python': 90}
print("学生各科成绩:", student_score)
# 演示查询指定科目成绩
print("Python成绩:", student_score['Python'])
1.4 集合
Python集合是无序无重复序列,用{}表示,自动去重。
# 集合示例:存储无重复元素(如课程列表)
# 自动去重,适合筛选不重复数据
course_set = {'语文', '数学', '英语', 'Python', 'Python', '英语'}
print("去重后的课程列表:", course_set)
# 演示集合基础运算(交集/并集可自行扩展)
another_set = {'Python', 'Java', 'C++'}
print("两门课程的交集:", course_set & another_set)
2、稻盛篇(文件操作)
戈戈:稻盛心学教人一心一意磨炼心灵,到达真我,瞬间明白一切真理。可对?
小沐:适度鸡汤也可以的,不要刻意。
2.1 文件操作
Python通过os模块实现全场景文件操作,可校验路径、管理文件属性。
import os
file_path = "戈戈小沐Python学习笔记.txt"
if os.path.exists(file_path):
print(f"{file_path} 已存在,可直接编辑学习内容")
else:
print(f"{file_path} 不存在,将创建新文件")
open(file_path, "w", encoding="utf-8").close()
- 判断是否为绝对路径:
os.path.isabs() - 检验路径是否存在:
os.path.exists()
- 分离目录与文件名:
os.path.split()(例:os.path.split('/home/swaroop/byte/code/poem.txt'),结果:('/home/swaroop/byte/code', 'poem.txt')) - 分离文件扩展名:
os.path.splitext()
- 获取文件大小:
os.path.getsize(filename) - 修改文件权限/时间戳:
os.chmod(file) - 文件/目录重命名:
os.rename(old, new) - 获取目录下所有文件/目录:
os.listdir()
- 读取/设置环境变量:
os.getenv() / os.putenv() - 获取平台行终止符:
os.linesep(Windows:'\r\n',Linux:'\n',Mac:'\r') - 指示当前平台:
os.name(Windows:'nt',Linux/Unix:'posix')
2.2 目录操作
Python结合os与shutil模块实现目录全流程管理,支持创建、复制、删除。
import os
study_dir = "戈戈小沐Python学习目录"
ifnot os.path.exists(study_dir):
os.mkdir(study_dir)
print(f"创建{study_dir}成功,可存放学习资料")
else:
print(f"{study_dir}已存在,目录内容:", os.listdir(study_dir))
- 创建多级目录:
os.makedirs(r"c:\python\test") - 删除空/非空目录:
shutil.rmtree("dir") - 删除多级目录:
os.removedirs(r"c:\python")
- 复制文件(仅文件):
shutil.copyfile - 复制文件/目录:
shutil.copy("oldfile","newfile")(oldfile为文件夹,newfile可为文件/目录) - 复制文件夹(仅目录,newdir不存在):
shutil.copytree("olddir","newdir")
- 重命名文件/目录:
os.rename("oldname","newname") - 移动文件/目录:
shutil.move("oldpos","newpos")
2.3 json
Python json模块实现字典与JSON互转,支持读写文件。
import json
# 存储戈戈和小沐的学习数据并写入JSON文件
study_data = {"戈戈": {"掌握内容": ["列表", "元组"], "进度": 60}, "小沐": {"掌握内容": ["列表"], "进度": 40}}
# 写入文件
with open("戈戈小沐学习数据.json", "w", encoding="utf-8") as f:
json.dump(study_data, f, ensure_ascii=False, indent=2)
print("学习数据已写入JSON文件")
2.4 xml
Python xml模块(ElementTree)可解析、创建XML文件,支持节点操作。
import xml.etree.ElementTree as ET
# 创建戈戈和小沐的学习清单XML
root = ET.Element("学习清单")
gogo = ET.SubElement(root, "戈戈")
gogo.text = "1. 复习数组类型 2. 学习文件操作"
xiaomu = ET.SubElement(root, "小沐")
xiaomu.text = "1. 练习列表操作 2. 理解元组特性"
# 写入文件
ET.ElementTree(root).write("学习清单.xml", encoding="utf-8", xml_declaration=True)
print("戈戈小沐学习清单XML创建完成")
2.5 re
Python re模块提供正则匹配功能,可查找、替换字符串。
import re
# 从学习笔记中提取戈戈和小沐的学习关键词
note = "戈戈学习Python列表、元组;小沐学习Python列表、字典,两人共同学习心学"
pattern = r"戈戈|小沐|Python|列表|元组|字典|心学"
result = re.findall(pattern, note)
print("提取的学习关键词:", result)
2.6 pandas
Python pandas是数据分析核心库,支持数据读取与统计。
import pandas as pd
# 用pandas整理戈戈和小沐的学习进度
data = {"姓名": ["戈戈", "小沐"], "掌握知识点": ["列表、元组", "列表"], "进度(%)": [60, 40]}
df = pd.DataFrame(data)
print("戈戈小沐学习进度表:")
print(df)
# 计算平均进度
print("两人平均学习进度:", df["进度(%)"].mean(), "%")
夜色渐深,小沐合上电脑,脸上满是收获:“原来编程和心学相通,就像阳明先生说的‘知行合一’,看懂知识点是‘知’,写好代码是‘行’。”
戈戈点头附和:“没错,学习编程从不是死记硬背,正如心学所言,用心领悟、反复实践,才能真正掌握。”
两人相视一笑。
后续
如果你觉得这些文字有一点点用处,可以给作者点个赞;╮( ̄▽ ̄)╭
如果你感觉作者写的不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O???
谢谢各位同学们啦( ´ ▽ `` )ノ ( ´ ▽ ` )っ!!!
更多文章详见CSDN爱看书的小沐