Python高阶知识点整理

news/2025/11/28 0:09:23/文章来源:https://www.cnblogs.com/lwp-nicol/p/19279815
数据类型 常用方法 (Method) 简要说明与应用场景
字符串 str .strip() 去除首尾空格(常用于处理用户输入)
.split(sep) 按指定分隔符分割成列表(处理CSV数据常用)
.join(iter) 将列表元素合并成字符串(.split的逆操作)
.replace(old, new) 替换字符串中的内容
.find(sub) 查找子串位置(找不到返 -1)
.upper() / .lower() 大小写转换
列表 list .append(obj) 在末尾添加一个元素
.pop(index) 移除并返回指定位置的元素(默认最后一个)
.remove(obj) 移除列表中第一个匹配的元素
.sort() 对列表进行永久排序
.clear() 清空列表内所有元素,变为 []
元组 tuple .count(obj) 统计某个元素出现的次数
.index(obj) 查找元素第一次出现的索引位置
字典 dict .get(key, default) 安全获取键值,若键不存在则返回默认值
.keys() / .values() 获取所有键 / 获取所有值
.items() 获取所有键值对(常用于遍历)
.pop(key) 删除指定键并返回其值
.clear() 清空字典内所有键值对,变为 {}
集合 set .add(obj) 添加一个元素
.remove(obj) 移除元素(若不存在会报错)
.union() / ` `
.intersection() / & 取交集
.clear() 清空集合内所有元素,变为 set()
数据类型 是否有序 (Ordered) 是否可变 (Mutable) 定义符号
字符串 str 有序 不可变 ' '
列表 list 有序 可变 [ ]
元组 tuple 有序 不可变 ( )
字典 dict 有序 可变 {k:v}
集合 set 无序 可变 { }
参数类型 代码语法示例 说明与教学重点 接收数据类型
位置参数 (Positional) def func(a, b): 最基础的参数,调用时必须传,且顺序要对应。 变量本身
默认参数 (Default) def func(mode='r'): 定义时赋值。调用时可不传(使用默认值),传了则覆盖。 变量本身
可变位置参数 (*args) def func(*args): 允许传入任意数量的位置参数(0个或多个)。 即:没名字的参数都给它。 元组 tuple
可变关键字参数 (**kwargs) def func(**kwargs): 允许传入任意数量的关键字参数(带变量名的)。 即:有名字但没定义的参数都给它。 字典 dict
特性 *args **kwargs
全称含义 Arguments (参数) Keyword Arguments (关键字参数)
符号作用 * (单星号) 负责打包位置参数 ** (双星号) 负责打包键值对参数
调用示例 func(1, 2, 3, 4) func(name="Tom", age=18)
函数内数据形态 变成 元组 (Tuple) (1, 2, 3, 4) 变成 字典 (Dict) {'name': 'Tom', 'age': 18}
变量命名 习惯写 args,但其实写 *names 也可以 习惯写 kwargs,但其实写 **info 也可以
教学口诀 单星管排队(位置),转成元组 双星管点名(键值),转成字典
场景 代码示例 效果说明
列表/元组解包 * nums = [10, 20] func(*nums) 等同于 func(10, 20) 将列表拆开,对应填入位置参数。
字典解包 ** conf = {'width': 800, 'height': 600} func(**conf) 等同于 func(width=800, height=600) 将字典拆开,对应填入关键字参数。
操作环节 关键代码/参数 说明与教学重点 试卷考点关联
打开文件 open(file, mode, encoding) 核心函数。建议始终指定 encoding='utf-8' 以防中文乱码。 1
文件模式 'r' (Read) 只读。文件不存在会报错 (FileNotFoundError)。
'w' (Write) 写入。文件存在则清空覆盖,不存在则创建。
'a' (Append) 追加。在文件末尾写入,不覆盖原内容。
'b' (Binary) 二进制模式。用于图片、音频(如 'rb', 'wb')。
读取内容 f.read() 读取全部内容(慎用于大文件)。
f.readline() 每次只读取一行。
f.readlines() 读取所有行并返回一个列表。
关闭文件 f.close() 必须关闭以释放资源。但推荐用 with 语句代替。 22
上下文管理 with open(...) as f: 最推荐写法。代码块结束自动关闭文件,无需手动写 f.close() 3333
功能分类 函数/方法 作用与实战应用 试卷考点关联
路径拼接 os.path.join(a, b) 智能拼接路径(自动处理 Windows \ 和 Linux / 的差异)。 例:把文件夹和文件名拼成完整路径。 444
文件名拆分 os.path.splitext(path) 将文件名拆分为 (主文件名, 扩展名)例:区分 .jpg.png 5555
获取列表 os.listdir(path) 获取指定文件夹下的所有文件和文件夹名称列表。 6666
文件重命名 os.rename(src, dst) 将文件从 src 重命名(或移动)为 dst注意:目标路径若已存在可能会覆盖或报错。 7777
判断检查 os.path.isfile(path) 判断给定的路径是否是一个文件。 8888
os.path.exists(path) 判断路径(文件或文件夹)是否存在。
获取目录 os.getcwd() 获取当前工作目录 (Current Working Directory)。 9
库/模块 操作 代码示例/函数 说明 试卷考点关联
csv 模块 (标准库) 读取 reader = csv.reader(f) 返回一个迭代器,按行读取。 10101010
跳过标题 next(reader) 手动跳过第一行表头。 11111111
写入 writer.writerow(list) 写入单行数据。
pandas 库 (第三方) 读取 pd.read_csv(file) 直接读成 DataFrame,功能更强大。 注意处理中文需设 encoding 12121212
写入 df.to_csv(file) 将数据框保存为 CSV 文件。
统计 df['列'].value_counts() 快速统计分类数据(如各班人数)。 13131313
考点 核心问题 答案/解释 教学重点
可变与不可变 列表和元组的区别?字典的键可以是列表吗? 列表可变,元组不可变。字典的键必须是不可变类型(所以列表不能做键,元组可以)。 这是一个送分题,也是送命题。
is vs == a is ba == b 有什么区别? == 比较数值是否相等;is 比较内存地址(id)是否相同。 强调:None 判断一定要用 is None
深拷贝 vs 浅拷贝 b = ac = copy.copy(a)d = copy.deepcopy(a) 的区别? 赋值是引用(贴标签);浅拷贝只拷第一层;深拷贝递归拷贝所有层(完全独立)。 画内存图教学最直观。
变量交换 不用中间变量交换 a 和 b? a, b = b, a Python 特有的优雅写法。
逻辑运算 andor 的短路机制 x and y:x假返x,否则返y;x or y:x真返x,否则返y。 容易考计算题,如 print(0 and 10) 输出 0。
考点 关键概念 面试常见问法
装饰器 (Decorator) @wrapper :什么是装饰器? :在不修改原函数代码的前提下,为函数增加新功能(如计时、日志)。
生成器 (Generator) yield yieldreturn 的区别? return 结束函数;yield 暂停函数并保存状态,下次调用从暂停处继续(省内存)。
面向对象 (OOP) __init__ self self 是什么? :代表类的实例对象本身(即“谁调用这个方法,self 就是谁”)。
文件管理 with open :为什么要用 with:上下文管理器,确保文件在使用后自动关闭,防止资源泄露。
异常处理 try...except except Exception as e 捕获什么? :捕获所有常规错误,防止程序崩溃。
模块 核心方法 考点/面试题 备注
Random (随机数) random.randint(a, b) 生成 [a, b] 范围内的整数(包含 b,这是一个特例大坑)。 游戏抽奖必用。
random.random() 生成 [0.0, 1.0) 之间的浮点数。
random.choice(seq) 从列表中随机选一个元素。
random.shuffle(lst) 原地打乱列表顺序(无返回值)。 1 试卷第19题考点。
Datetime (日期时间) datetime.now() 获取当前时间。
.strftime("%Y-%m-%d") 格式化:把时间对象转成字符串(Time -> String)。 区分大小写:%Y是2025,%y是25;%m是月,%M是分。
.strptime(str, fmt) 解析:把字符串转成时间对象(String -> Time)。
JSON (数据交换) json.dumps(obj) 把 Python 字典转成 JSON 字符串(序列化)。 接口开发常用。
json.loads(str) 把 JSON 字符串转成 Python 字典(反序列化)。 爬虫数据解析常用。
符号/方法 含义/作用 常见考题示例
\d 匹配数字 (0-9) 匹配手机号前3位:^\d{3}
\w 匹配字母、数字、下划线 匹配变量名是否合法。
. 匹配任意字符 (除换行符) 爬虫中常用 .*? 非贪婪匹配提取内容。
^ / ` 符号/方法 含义/作用
-------------- ----------------------- ------------------------------------------------------------
\d 匹配数字 (0-9) 匹配手机号前3位:^\d{3}
\w 匹配字母、数字、下划线 匹配变量名是否合法。
. 匹配任意字符 (除换行符) 爬虫中常用 .*? 非贪婪匹配提取内容。
  | 匹配开头 / 匹配结尾     | 验证整个字符串是否符合格式。                                 |

| re.match() | 仅从开头匹配 | re.match('b', 'abc') 返回什么? :None(因为开头是a)。 |
| re.search() | 扫描整个字符串匹配 | re.search('b', 'abc') 返回什么? :匹配对象(找到b)。 |
| re.findall() | 找到所有匹配项 | 返回一个列表,包含所有结果。 |

概念 知识点 常见考法
排序 list.sort() vs sorted() :区别是什么? sort 改变原列表(无返回值);sorted 返回新列表(原列表不变)。
递归 函数自己调用自己 代码题:写一个计算阶乘 n! 的函数。 return n * fac(n-1)
二分查找 前提是有序序列 :在100个有序数字中找一个数,最多找几次? :约7次 (\(2^7 > 100\))。
栈与队列 数据进出顺序 :先进后出 (LIFO, 像压弹夹)。 队列:先进先出 (FIFO, 像排队)。
关键字 作用/执行时机 教学口诀 典型考题
try 包裹可能出错的代码块。 “大胆尝试”
except 只有在 try报错时才执行。 “出错兜底” :可以有多个 except 吗? :可以,先抓具体错误(如 ValueError),最后抓总错误(Exception)。
else 只有在 try没报错时才执行。 “没事庆祝” :else 块必须要有 except 吗? :必须配合 try/except 使用。
finally 无论是否报错,最后一定执行。 (常用于关闭文件、断开数据库)。 “无论如何,必须要干” 代码阅读题:函数在 try 里 return 了,finally 还会执行吗? 会! 这是最经典的坑。
raise 主动抛出一个异常。 “自爆” 用于业务逻辑检查,如 if age < 0: raise ValueError
方法名 触发时机/作用 常见面试题
__init__ 构造函数。创建对象时自动调用,用于初始化属性。 :必须写返回值吗? :不能有返回值(只能返 None)。
__str__ 打印对象时调用。即 print(obj) 时显示的内容。 :如果不写这个会打印什么? :打印 <__main__.Class object at 0x...> 这种看不懂的内存地址。
__new__ 创建实例时调用(比 __init__ 先执行)。 高阶题:单例模式(Singleton)通常在哪里实现? :在 __new__ 里控制。
__call__ 把对象当函数用时调用。 代码题p = Person(); p()。这行代码合法吗? :如果类里定义了 __call__ 就合法。
概念 知识点 解释/考法
程序入口 if __name__ == '__main__': 作用:防止被别的模块 import 导入时,自动执行测试代码。 原理:直接运行时 __name__'__main__';被导入时 __name__ 是文件名。
LEGB 规则 变量查找顺序 Local (局部) \(\rightarrow\) Enclosing (闭包外层) \(\rightarrow\) Global (全局) \(\rightarrow\) Built-in (内置)。 口诀:先看自己兜里有没有,没有再往外找。
Global 修改全局变量 错题集:函数内直接 x = 10 (x是全局变量) 会怎样? :会变成创建一个新的局部变量 x。想改全局的必须先声明 global x

其他零碎但重要的知识点

  • 断言 (assert)
    • 用法:assert age >= 18, "未成年"
    • 作用:防御性编程。如果条件为假,程序直接崩溃报错。常用于调试。
  • 迭代器 (Iterator) vs 可迭代对象 (Iterable)
    • Iterable:凡是能用 for 循环遍历的都是(列表、字符串)。
    • Iterator:可以用 next() 一个个取值的对象(生成器、文件句柄)。
    • 考点:列表是 Iterable 但不是 Iterator。
  • ZIP 函数
    • 作用:zip([1,2], ['A','B']) \(\rightarrow\) [(1,'A'), (2,'B')]
    • 场景:同时遍历两个列表(如试卷中把图片和ID配对)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第4单元检测卷

第4单元检测卷 - 题目、答案与解析 一、单项选择题题目:在Python中,用于创建一个新字典的语法是 ( )A. d = dict[] B. d = {} C. d = () D. d = new dict()答案:B 解析:在Python中,创建字典最常用和直接的方法是使…

javascript下载文件五种方式

javascript下载文件五种方式参考:https://blog.csdn.net/weixin_42705100/article/details/133125521 本文介绍了五种在JavaScript中下载文件的方法:通过`window.location.href`、`window.open()`、iframe、动态a标签…

ubunutu连接蓝牙键盘鼠标

​ 双系统ubunutu能连接上蓝牙耳机,但是win能连接上蓝牙键盘鼠标ubunutu却连接不上,百思不得其解。怀疑要么是驱动要没是配置的问题。试试了一下现有文章的方法,都是要让装bluez和blueman之类,装完之后还是搜索不到…

详细介绍:从 1.0 到 13.0:C# 十八年进化史,一部写给开发者的语言成长记

详细介绍:从 1.0 到 13.0:C# 十八年进化史,一部写给开发者的语言成长记2025-11-28 00:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: …

生研界:技术赋能,AI如何重塑医学科研生态?

在科技浪潮席卷全球的当下,人工智能(AI)正以前所未有的速度重塑医学科研生态。从靶点发现到药物设计,从疾病预测到精准诊疗,AI技术正逐步渗透至医学科研的每一个环节,推动着医学研究范式的深刻变革。在这场变革中…

2025ICPC区域赛成都站记——为者败之,执者失之

打银2025年的成都站是我有生以来第一次线下xcpc比赛。在先前的网络赛选拔中,我们队获得了两个icpc名额和1个ccpc名额。先前西安站我们学校打了两块金牌的情况下,我们队的三个人都非常希望在大学的第一场比赛就能打出…

quickfox windows 海外回国加速器 会导致部分国外网站不能使用

比如说 google.com可以,但是grok.com不能打开 关掉quickfox后,grok.com就能打开了

4433

用StegSolve分析图片看到一个二维码,在https://cli.im/deqr/other 扫描二维码猜测为摩斯密码...--.----...--..但没有分隔,根据题目提示4433,分隔为...-/-.--/--./..-/-..,在https://www.iamwawa.cn/morse.html 解…

在VMware Workstation设置虚拟机的VNC连接功能

在VMware Workstation设置虚拟机的VNC连接功能在VMware Workstation设置虚拟机的VNC连接功能。首先在workstation中设置好虚拟机的VNC连接参数,如图:使用VNC客户端开始连接虚拟机,配置如下: 这时候出现错误提示:…

rust基础第三篇:所有权

rust基础第三篇:所有权值被唯一的scope拥有,它们共存亡。 值可以从一个scope移动到另一个scope,新的scope会拥有这个值。 一个值可以有多个只读引用和单个可变引用,它们之间是互斥关系。 引用不能超越值的存活期。…

Houdini软件简介

Houdini软件简介Houdini(wiki,chs)是一款由加拿大Side Effects Software Inc.(简称SESI)公司开发的3D动画软件,可运行于Linux、Windows、Mac OS等操作系统 与其它的三维软件相比,其结构、操作方式等有很大的差异…

Windows系统磁盘管理——迁移“恢复分区”

方案一、将“恢复分区”迁移到“新分区”将“恢复分区(例如分区 4)”迁移到新分区(分区F)中。1.1 创建新分区 在磁盘 0 的最右侧分出一块新分区(分区 F),其容量需略大于当前的“恢复分区”。 1.2 给“恢复分区”…

WinFormedge 增加登录页面(自定义布局,非左右布局) 并作为启动页面 及两种布局切换全屏非全屏

WinFormedge 增加登录页面(自定义布局,非左右布局)并作为启动页面的实现方法 1、增加一个自定义布局(Components/Layout下新建EmptyLayout.razor布局文件) 代码如下:@inherits LayoutComponentBase@Body <Fl…

2025.11.27总结

完成儿童故事的项目 完成CS架构的项目 目前bs架构的方向还没定,不过我打算在设计上就搞好这个项目,我认为只要能设计好,从目的,数据库设计,方法接口设计。清晰的将模块拆分,功能罗列出来。 这样在编码阶段才能有…

第6单元检测卷

好的,这是根据您提供的第三份PDF文档(第6单元检测卷)内容提取的题目、答案和解析,已按题型分类,并以Markdown格式呈现。第6单元检测卷 - 题目、答案与解析 一、单项选择题题目:关于数据库存储描述正确的是 ( )A.…

第7单元检查卷

单元检测卷题目与答案解析 一、单项选择题题目:在批量重命名活动照片项目中,读取CSV报名表时需跳过标题行,应使用的函数是 ( )A. csv.skip() B. next(reader) C. reader.skip() D. csv.reader(skipheader=True)答案…

2025 美本申请 SAT 高分指南:全国 TOP6培训机构甄选,从课程到服务全维度测评

2025 年美本、加本及新加坡本科申请已进入白热化阶段,SAT 作为院校筛选的核心硬指标,直接决定学子能否在万级竞争者中突围。尤其 SAT 机考改革后,题型迭代、备考周期压缩,再加上市场上机构良莠不齐 —— 部分宣称 …

2025 年江苏有机农场推荐榜:德芳有机农场全品类覆盖、国家权威有机认证

随着消费者对食品安全和健康生活方式的日益重视,有机农产品市场需求持续井喷,尤其是在经济发达的长三角地区,对高品质、可追溯的有机食材的需求达到了新的高度。2025 年,江苏省内有机农场数量不断增加,但真正具备…

题解:P5518 [MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题

绝对是基础练习题哈!推式子不是世界上最快乐的事情嘛。题目大意:在 \(p\) 分别定义为 \(1\)、\(ijk\)、\(\gcd(i,j,k)\) 下求 \(\displaystyle \prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left ( \frac{\text{l…

S7-1200 PROFINET与 IO device 通信

文章来源:S7-1200withIO_device重要标记: 1.首先要收1200和分布式IO的实物。 2.配置IP后,界面连接后,分配名称重新下载即可。PROFINET IO 设备指分配给一个或多个 IO 控制器的分布式现场设备(例如,远程 IO、阀岛…