企业设计网站公司排行榜微商网站怎么做

张小明 2025/12/31 1:22:13
企业设计网站公司排行榜,微商网站怎么做,微信公众号开发平台登录,wordpress 伪静态实现前四课我们依次掌握了「基础数据类型」「流程控制」「函数封装」#xff0c;能实现模块化的程序逻辑#xff0c;但在实际开发中#xff0c;还会遇到两个核心需求#xff1a;数据处理进阶#xff1a;基础容器#xff08;列表、字典#xff09;无法高效解决「数据去重」「…前四课我们依次掌握了「基础数据类型」「流程控制」「函数封装」能实现模块化的程序逻辑但在实际开发中还会遇到两个核心需求数据处理进阶基础容器列表、字典无法高效解决「数据去重」「有序存储」等问题数据持久化程序运行时的数据存储在内存中程序关闭后数据丢失需要将数据保存到文件中实现长期存储。本节课将学习Python 高级数据容器集合、有序字典和文件操作两大核心内容高级容器解决复杂数据处理需求文件操作实现数据持久化两者结合让你的程序具备「高效数据处理」和「长期数据存储」的实战能力是从入门到实战的关键跨越。一、课程目标✅ 掌握集合set的核心特性与操作实现数据高效去重、交集 / 并集 / 差集计算✅ 理解有序字典OrderedDict的应用场景掌握有序键值对的存储与操作✅ 吃透文件操作的核心流程打开 - 读写 - 关闭掌握open()函数与with语句的用法✅ 熟练使用文件的读操作read()/readline()/readlines()和写操作write()/writelines()✅ 掌握文件的追加模式与覆盖模式理解不同打开模式的区别✅ 能综合运用高级容器与文件操作完成「数据去重统计并保存到文件」等实战任务✅ 建立「数据持久化」思维学会将程序数据保存到文件实现跨运行周期的数据存储。二、复习回顾基础容器的局限与高级容器的诞生我们已经掌握的基础数据容器列表、字典、元组在处理某些场景时存在明显局限列表允许重复元素去重需要手动遍历判断效率低字典Python3.7 才支持插入顺序但无法直接实现「键的有序操作」如按插入顺序删除所有基础容器数据存储在内存中程序关闭后数据丢失无法持久化。高级数据容器正是为解决这些局限而生集合set天生去重支持高效的集合运算交集、并集、差集适合处理无重复元素的场景有序字典OrderedDict严格保留键的插入顺序支持按顺序操作键值对适合需要有序存储的场景。文件操作则解决了数据持久化问题将内存中的数据写入文件硬盘存储程序下次运行时可从文件中读取数据实现数据的长期保存。三、核心知识点 1高级数据容器 —— 集合set—— 数据去重与集合运算的利器3.1 集合的核心特性必须掌握集合是 Python 中一种无序、可变、元素唯一的高级数据容器用大括号{}包裹元素之间用逗号分隔。核心特性总结为 3 点无序元素无固定顺序不支持索引和切片这是与列表的核心区别元素唯一集合中不会存在重复元素天生支持去重这是集合的核心优势可变可以添加、删除元素但元素必须是不可变类型字符串、数字、元组不能是列表、字典等可变类型。3.2 集合的定义与初始化✅ 方式 1直接用{}定义注意空集合不能用{}{}表示空字典python运行# 定义非空集合 s1 {1, 2, 3, 3, 4} # 自动去重重复元素3只保留一个 s2 {苹果, 香蕉, 苹果, 橘子} # 字符串集合自动去重 print(s1) # 输出{1, 2, 3, 4}无序顺序可能不同 print(s2) # 输出{苹果, 香蕉, 橘子}无序✅ 方式 2用set()函数转换最常用适合将列表、字符串等转为集合去重python运行# 列表转集合去重 lst [1, 2, 2, 3, 3, 3] s3 set(lst) print(f列表转集合{s3}) # 输出{1, 2, 3} # 字符串转集合去重无序 str1 Python s4 set(str1) print(f字符串转集合{s4}) # 输出{P, y, t, h, o, n}顺序可能不同 # 定义空集合必须用set() s5 set() print(f空集合类型{type(s5)}) # 输出class set print(f空字典类型{type({})}) # 输出class dict3.3 集合的常用操作核心集合的操作主要分为两类元素的增删改查和集合运算交集、并集、差集。✅ 操作 1元素的增删改查1添加元素add()添加单个元素、update()添加多个元素python运行s {1, 2, 3} # add()添加单个元素元素已存在则不报错 s.add(4) s.add(3) # 元素3已存在无操作 print(fadd后{s}) # 输出{1, 2, 3, 4} # update()添加多个元素接收可迭代对象列表、元组、字符串等 s.update([5, 6]) s.update(78) print(fupdate后{s}) # 输出{1, 2, 3, 4, 5, 6, 7, 8}无序2删除元素remove()元素不存在报错、discard()元素不存在不报错、pop()随机删除一个元素python运行s {1, 2, 3, 4, 5} # remove()删除指定元素不存在则报错KeyError s.remove(3) # s.remove(10) # 报错KeyError: 10 print(fremove后{s}) # 输出{1, 2, 4, 5} # discard()删除指定元素不存在则不报错推荐使用 s.discard(4) s.discard(10) # 无操作不报错 print(fdiscard后{s}) # 输出{1, 2, 5} # pop()随机删除一个元素返回被删除的元素集合无序无法指定 deleted_num s.pop() print(fpop删除的元素{deleted_num}) print(fpop后{s}) # 输出{2, 5}随机结果可能不同3查询元素in关键字判断元素是否在集合中效率极高python运行s {1, 2, 3, 4, 5} print(3 in s) # 输出True print(10 in s) # 输出False✅ 操作 2集合运算交集、并集、差集、对称差集—— 集合的核心优势集合运算用于处理两个集合之间的关系是数学中集合概念的直接实现效率远高于手动遍历列表实现。python运行# 定义两个集合 s1 {1, 2, 3, 4, 5} s2 {4, 5, 6, 7, 8} # 1. 并集|两个集合中所有的元素去重 union_set s1 | s2 print(f并集{union_set}) # 输出{1, 2, 3, 4, 5, 6, 7, 8} # 2. 交集两个集合中共同的元素 intersection_set s1 s2 print(f交集{intersection_set}) # 输出{4, 5} # 3. 差集-s1中有但s2中没有的元素 difference_set s1 - s2 print(f差集s1-s2{difference_set}) # 输出{1, 2, 3} # 4. 对称差集^两个集合中互不相同的元素并集 - 交集 symmetric_diff_set s1 ^ s2 print(f对称差集{symmetric_diff_set}) # 输出{1, 2, 3, 6, 7, 8}3.4 集合的应用场景实战高频✅ 场景 1列表去重最常用python运行# 列表去重将列表转为集合再转回列表 lst [1, 2, 2, 3, 3, 3, 4, 5, 5] unique_lst list(set(lst)) print(f去重后的列表{unique_lst}) # 输出[1, 2, 3, 4, 5]顺序可能不同✅ 场景 2判断两个列表的共同元素python运行lst1 [1, 2, 3, 4, 5] lst2 [4, 5, 6, 7, 8] # 转集合后求交集 common_ele list(set(lst1) set(lst2)) print(f两个列表的共同元素{common_ele}) # 输出[4, 5]四、核心知识点 2高级数据容器 —— 有序字典OrderedDict—— 有序键值对的存储4.1 有序字典的核心特性在 Python3.7 之前普通字典dict是无序的无法保留键的插入顺序有序字典OrderedDict是collections模块提供的高级容器严格保留键的插入顺序支持按插入顺序操作键值对。Python3.7 及以上版本普通字典已支持保留插入顺序但OrderedDict仍有其独特优势支持按插入顺序删除键值对popitem(lastTrue/False)支持重新排序move_to_end(key, lastTrue/False)。4.2 有序字典的使用需导入collections模块✅ 步骤 1导入OrderedDictpython运行from collections import OrderedDict✅ 步骤 2定义与初始化python运行# 定义有序字典 od OrderedDict() # 添加键值对按插入顺序保存 od[name] 张三 od[age] 20 od[score] 95 print(od) # 输出OrderedDict([(name, 张三), (age, 20), (score, 95)])✅ 步骤 3常用操作与普通字典类似新增有序操作python运行from collections import OrderedDict od OrderedDict() od[a] 1 od[b] 2 od[c] 3 # 1. 按插入顺序遍历与普通字典3.7相同 for key, value in od.items(): print(f{key}: {value}) # 输出a:1 → b:2 → c:3 # 2. popitem()按插入顺序删除键值对lastTrue默认删除最后一个lastFalse删除第一个 last_item od.popitem() print(f删除的最后一个元素{last_item}) # 输出(c, 3) first_item od.popitem(lastFalse) print(f删除的第一个元素{first_item}) # 输出(a, 1) print(f删除后{od}) # 输出OrderedDict([(b, 2)]) # 3. move_to_end()将指定键移动到开头或结尾 od[a] 1 od[c] 3 od.move_to_end(a, lastTrue) # 移动到结尾 print(fa移动到结尾{od}) # 输出OrderedDict([(b, 2), (c, 3), (a, 1)]) od.move_to_end(c, lastFalse) # 移动到开头 print(fc移动到开头{od}) # 输出OrderedDict([(c, 3), (b, 2), (a, 1)])4.3 有序字典的应用场景适合需要严格保留键的插入顺序且需要按顺序操作键值对的场景如配置文件的有序解析、日志的有序记录等。五、核心知识点 3文件操作 —— 数据持久化的核心5.1 文件操作的核心流程文件操作的核心流程分为三步打开文件→读写文件→关闭文件。打开文件使用open()函数建立程序与文件的连接返回文件对象读写文件通过文件对象的读写方法实现数据的读取或写入关闭文件使用close()方法关闭程序与文件的连接释放系统资源必须执行否则可能导致数据丢失或文件损坏。5.2 文件的打开与关闭基础✅ 核心函数open()语法open(file, moder, encodingNone)file文件路径绝对路径或相对路径mode打开模式默认r只读常用模式有w写入、a追加、r读写等encoding文件编码推荐使用utf-8避免中文乱码。✅ 基础示例打开并关闭文件python运行# 打开文件相对路径文件需与程序在同一目录下 f open(test.txt, moder, encodingutf-8) # 执行读写操作此处省略 # 关闭文件必须执行 f.close()✅ 进阶使用with语句推荐with语句会自动关闭文件即使程序出现异常也能保证文件被正确关闭避免资源泄漏是文件操作的推荐方式。python运行# with语句自动关闭文件 with open(test.txt, moder, encodingutf-8) as f: # 执行读写操作 pass # 离开with代码块文件自动关闭5.3 文件的打开模式核心必须掌握文件的打开模式决定了对文件的操作权限常用模式如下模式说明注意事项r只读模式默认文件必须存在否则报错FileNotFoundErrorw写入模式文件不存在则创建文件存在则覆盖原有内容a追加模式文件不存在则创建文件存在则在末尾追加内容r读写模式文件必须存在可同时读写w读写模式文件不存在则创建存在则覆盖a读写模式文件不存在则创建存在则追加5.4 文件的读操作读取文件内容到程序文件对象提供了三种常用的读方法read()、readline()、readlines()。✅ 方法 1read(size-1)—— 读取全部内容或指定字节数python运行# 读取全部内容 with open(test.txt, moder, encodingutf-8) as f: content f.read() print(文件全部内容) print(content) # 读取指定字节数英文1个字符1字节中文1个字符3字节utf-8编码 with open(test.txt, moder, encodingutf-8) as f: content f.read(5) # 读取前5个字符 print(f\n前5个字符{content})✅ 方法 2readline()—— 逐行读取内容适合读取大文件避免一次性加载全部内容到内存。python运行# 逐行读取 with open(test.txt, moder, encodingutf-8) as f: line1 f.readline() # 读取第一行 line2 f.readline() # 读取第二行 print(f第一行{line1.strip()}) # strip()去除换行符 print(f第二行{line2.strip()})✅ 方法 3readlines()—— 读取所有行返回列表python运行# 读取所有行返回列表 with open(test.txt, moder, encodingutf-8) as f: lines f.readlines() print(所有行) for i, line in enumerate(lines): # enumerate()获取行号 print(f第{i1}行{line.strip()})5.5 文件的写操作将程序数据写入文件文件对象提供了两种常用的写方法write()、writelines()。✅ 方法 1write(content)—— 写入字符串内容python运行# 写入模式w覆盖原有内容 with open(test.txt, modew, encodingutf-8) as f: f.write(Hello Python\n) # \n表示换行 f.write(这是文件的写入操作。\n) # 追加模式a在末尾追加内容 with open(test.txt, modea, encodingutf-8) as f: f.write(这是追加的内容。\n)✅ 方法 2writelines(iterable)—— 写入可迭代对象列表、元组等python运行# 写入列表内容 lines [第一行内容\n, 第二行内容\n, 第三行内容\n] with open(test.txt, modew, encodingutf-8) as f: f.writelines(lines)5.6 实战文件的复制操作python运行# 复制文件读取源文件内容写入目标文件 def copy_file(source_file, target_file): 复制文件 with open(source_file, moder, encodingutf-8) as f_src: content f_src.read() with open(target_file, modew, encodingutf-8) as f_tgt: f_tgt.write(content) print(f文件复制完成{source_file} → {target_file}) # 调用函数 copy_file(source.txt, target.txt)六、综合实操案例整合高级容器与文件操作案例 1学生成绩去重统计并保存到文件✅ 需求接收用户输入的多个学生成绩去重后统计最高分、最低分、平均分将统计结果保存到文件中。✅ 知识点集合去重、列表操作、文件写操作、函数封装。python运行def stat_scores(): 统计学生成绩去重后保存结果到文件 # 1. 接收用户输入 scores_input input(请输入学生成绩用逗号分隔) # 2. 转换为列表并去重 scores_lst list(map(int, scores_input.split(,))) # 字符串转整数列表 unique_scores list(set(scores_lst)) # 去重 if not unique_scores: print(未输入有效成绩) return # 3. 统计数据 max_score max(unique_scores) min_score min(unique_scores) avg_score round(sum(unique_scores) / len(unique_scores), 1) # 4. 准备保存内容 result f 学生成绩统计结果 \n result f原始成绩{scores_lst}\n result f去重后成绩{unique_scores}\n result f最高分{max_score}\n result f最低分{min_score}\n result f平均分{avg_score}\n # 5. 写入文件 with open(score_stat.txt, modew, encodingutf-8) as f: f.write(result) print(统计结果已保存到 score_stat.txt 文件中) # 调用函数 stat_scores()案例 2待办事项管理系统支持持久化✅ 需求实现一个简单的待办事项管理系统支持添加、查询、删除待办事项并将待办事项保存到文件中程序重启后可读取之前的待办事项。✅ 知识点有序字典、文件读写、流程控制、函数封装。python运行from collections import OrderedDict import os def load_todos(): 从文件加载待办事项 todos OrderedDict() if os.path.exists(todos.txt): # 判断文件是否存在 with open(todos.txt, moder, encodingutf-8) as f: lines f.readlines() for line in lines: line line.strip() if line: index, content line.split(|, 1) todos[index] content return todos def save_todos(todos): 将待办事项保存到文件 with open(todos.txt, modew, encodingutf-8) as f: for index, content in todos.items(): f.write(f{index}|{content}\n) def add_todo(todos): 添加待办事项 content input(请输入待办事项内容) index str(len(todos) 1) todos[index] content save_todos(todos) print(f待办事项添加成功序号{index}) def query_todos(todos): 查询所有待办事项 if not todos: print(暂无待办事项) return print( 待办事项列表 ) for index, content in todos.items(): print(f{index}. {content}) def delete_todo(todos): 删除待办事项 if not todos: print(暂无待办事项可删除) return index input(请输入要删除的待办事项序号) if index in todos: del todos[index] # 重新排序序号 new_todos OrderedDict() for i, (_, content) in enumerate(todos.items(), 1): new_todos[str(i)] content save_todos(new_todos) print(待办事项删除成功) return new_todos else: print(输入的序号不存在) return todos def todo_system(): 待办事项管理系统主函数 todos load_todos() while True: print(\n 待办事项管理系统 ) print(1. 添加待办事项) print(2. 查询待办事项) print(3. 删除待办事项) print(4. 退出系统) choice input(请输入操作序号) if choice 1: add_todo(todos) elif choice 2: query_todos(todos) elif choice 3: todos delete_todo(todos) elif choice 4: print(感谢使用待办事项管理系统) break else: print(输入无效请重新选择) # 启动系统 todo_system()七、课后作业基础 进阶巩固必做✅ 基础作业掌握核心用法定义函数remove_duplicates(lst)接收一个列表返回去重后的新列表使用集合实现保持元素顺序可使用OrderedDict编写程序读取一个文本文件统计文件中出现的所有单词并去重将去重后的单词保存到新文件中实现文件的追加操作向一个已存在的文件中追加 3 行新内容。✅ 进阶作业综合运用基于集合的集合运算编写程序接收两个用户输入的列表输出它们的并集、交集、差集并将结果保存到文件中完善待办事项管理系统新增功能修改待办事项内容思考文件操作中w模式和a模式的核心区别是什么使用w模式时需要注意什么八、后续学习指引本节课我们掌握了Python 高级数据容器集合、有序字典和文件操作的核心知识实现了数据的高效去重、有序存储和持久化让程序具备了实战所需的核心数据处理能力。 下一课我们将学习Python 异常处理与模块导入—— 掌握异常处理机制try-except解决程序运行时的错误学会导入和使用模块内置模块、第三方模块、自定义模块实现代码的复用与扩展让程序更健壮、更具扩展性。九、本节课核心总结集合set无序、元素唯一、可变核心优势是去重和集合运算交集、并集、差集适合处理无重复元素的场景有序字典OrderedDict严格保留键的插入顺序支持按顺序操作键值对适合需要有序存储的场景文件操作核心流程打开open()→ 读写read()/write()等→ 关闭close()推荐使用with语句自动关闭文件文件打开模式r只读、w写入覆盖、a追加是最常用的三种模式需根据需求选择数据持久化通过文件操作将内存中的数据写入硬盘文件实现程序关闭后数据不丢失是实战程序的必备功能核心思维根据数据处理需求选择合适的容器去重用集合、有序键值对用 OrderedDict通过文件操作实现数据的长期存储。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站用虚拟主机还是用服务器临汾做网站公司哪家好

大模型梯度累积技巧缓解GPU显存压力 在当前大模型训练的实践中,一个再熟悉不过的场景是:刚启动训练脚本,还没等看到第一轮 loss 输出,终端就弹出刺眼的 CUDA out of memory 错误。尤其是当你手头只有一块 24GB 显存的消费级显卡&a…

张小明 2025/12/31 1:21:40 网站建设

泰语网站怎么建设免费的wordpress主机

第一章:Open-AutoGLM预约成功率提升300%的背景与意义 在大模型应用快速发展的背景下,Open-AutoGLM作为一款面向自动化任务调度与资源分配的智能系统,其核心功能依赖于高并发场景下的资源预约机制。然而,在早期版本中,由…

张小明 2025/12/31 1:21:02 网站建设

室内设计效果图app直通车优化推广

优化前端代码的方法减少HTTP请求 合并CSS和JavaScript文件,使用CSS Sprites技术合并小图标,减少页面加载时的请求次数。启用浏览器缓存,利用Expires或Cache-Control头控制资源缓存时间。压缩资源文件 使用工具如UglifyJS压缩JavaScript&#…

张小明 2025/12/31 1:20:23 网站建设

废旧电脑做网站服务器广告设计学什么

CIDR合并工具:让IP地址管理变得简单高效 【免费下载链接】cidr-merger A simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6 项目地址: https://gitcode.com/gh_mirrors/ci/cidr-merger 还在为管理复杂的IP地址段而烦恼吗&#xf…

张小明 2025/12/31 1:19:44 网站建设

怎么才能建设免费网站全球建筑设计网站

一套完整的交钥匙酿造系统,是指覆盖从原料处理到主发酵结束的全流程设备集成方案,适用于啤酒厂、精酿酒坊、果酒工厂等不同类型的酒精饮料生产企业。尽管具体配置会因产能规模、产品类型(如啤酒、葡萄酒、果酒)及工艺路线而有所调…

张小明 2025/12/31 1:19:00 网站建设

网站推广方式都有哪些温室大棚建设 网站及排名转卖

B站缓存视频转换神器:一键将m4s转mp4的完整解决方案 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还在为B站缓存的视频文件无法直接播放而苦恼吗?你是…

张小明 2025/12/31 1:18:18 网站建设