python考点讲解- TYUT

news/2025/12/9 19:18:53/文章来源:https://www.cnblogs.com/kkman2000/p/19328091

给出“是什么→为什么→怎么用→易错点→小练习”的完整讲解,每个知识点都配上可直接运行的 Python 代码与中文注释。


第四章 字符串的格式化方法

  1. % 老式格式化(了解即可,维护老代码会遇到)
  2. str.format() 新式格式化(Python 3.0+)
  3. f-string 字符串插值(Python 3.6+,官方最推荐:快、可读、支持任意表达式)

核心记忆口诀:
“百分号老,format 新,f-string 最香最贴心。”

---------------- 代码示例 ----------------

name = "小千"
age  = 18
score = 92.857# 1. % 方式
s1 = "姓名:%s,年龄:%d,成绩:%.1f" % (name, age, score)
print("1.% 方式 ->", s1)# 2. str.format()
s2 = "姓名:{0},年龄:{1},成绩:{2:.1f}".format(name, age, score)
print("2.format ->", s2)# 3. f-string(推荐)
s3 = f"姓名:{name},年龄:{age},成绩:{score:.1f}"
print("3.f-string->", s3)# f-string 里可以写任意表达式
import math
print(f"明年{age+1}岁,π取两位={math.pi:.2f}")

易错点

  • 混用中英文引号、花括号未配对。
  • 在 f-string 里写反斜杠 \ 时要双反斜杠 \\,或者直接用 raw-string rf"..."

小练习
把当前系统时间格式化成 2025-12-09 14:30:05 的形式并打印。
(提示:from datetime import datetimedatetime.now()f"{now:%Y-%m-%d %H:%M:%S}"


第八章 断言的用法和功能

断言 = 防御式编程的“守门员”。
语法:
assert 条件 [, 报错信息]
条件为假时立即抛 AssertionError,程序崩溃——越早发现 bug 越好。

---------------- 代码示例 ----------------

def divide(a, b):# 守卫:除数不能为 0assert b != 0, "除数不能为 0"return a / bprint(divide(10, 2))   # 正常
# divide(10, 0)        # 打开注释会报错:AssertionError: 除数不能为 0

生产环境关闭断言(提速):
python -O demo.py # -O 会忽略所有 assert,相当于 C 的 #define NDEBUG

易错点

  • 把 assert 当 if 用:assert 只用于“绝不应该发生”的场景,不能替代业务分支。
  • 在 assert 里写副作用,如 assert lst.pop()==3;一旦 -O 开关关闭,这句就消失,逻辑会出错。

小练习
写一个开平方函数,要求输入必须是非负浮点数,否则断言失败并给出提示。


第五章 函数

5.1 函数参数的类型(位置、默认、关键字、可变)

def demo(a, b=10, *args, **kwargs):"""a      : 位置参数b=10   : 默认参数*args  : 可变位置参数(元组)**kwargs: 可变关键字参数(字典)"""print("a=", a, "b=", b)print("args=", args)print("kwargs=", kwargs)# 调用
demo(1)                      # a=1 b=10
demo(1, 2)                   # a=1 b=2
demo(1, 2, 3, 4)             # args=(3,4)
demo(1, 2, 3, x=5, y=6)      # args=(3,) kwargs={'x':5,'y':6}

易错点

  • 默认参数不要用可变对象(列表/字典),否则会出现“记忆”现象。
    错误示例:def add(item, lst=[]): ...
    正确写法:def add(item, lst=None): if lst is None: lst = []

5.2 列表推导式(List Comprehension)

一行生成列表,比 for 循环快、可读性好。

# 需求:0~9 的平方,且只保留偶数的平方
squares = [x*x for x in range(10) if x % 2 == 0]
print(squares)          # [0, 4, 16, 36, 64]# 嵌套:把两个列表拼接成字符串
colors = ["红", "蓝"]
sizes  = ["S", "M", "L"]
tshirts = [f"{c}-{s}" for c in colors for s in sizes]
print(tshirts)
# ['红-S', '红-M', '红-L', '蓝-S', '蓝-M', '蓝-L']

5.3 定义与调用函数(结合书例 5-1~5-4)

例 5-1 最简函数

def welcome():print("Hello, Python!")welcome()

例 5-2 带返回值

def add(a, b):return a + bresult = add(3, 4)
print("3+4=", result)

例 5-3 默认参数

def power(x, n=2):return x ** nprint(power(5))    # 25
print(power(5, 3)) # 125

例 5-4 多个返回值(实质是返回元组)

def div_mod(a, b):return a // b, a % bq, r = div_mod(17, 5)
print("商=", q, "余=", r)

5.4 递归调用(PPT 常见例子:阶乘、斐波那契、汉诺塔)

阶乘:

def factorial(n):if n == 0 or n == 1:return 1return n * factorial(n - 1)print(factorial(5))  # 120

递归三要素:

  1. 基准条件(退出条件)
  2. 向基准靠近(n-1)
  3. 自己调用自己

易错点

  • 忘记写基准条件 → 无限递归爆栈 RecursionError: maximum recursion depth exceeded
  • Python 默认递归深度 1000,可用 sys.setrecursionlimit() 提高,但别滥用。

小练习
用递归实现“列表求和”,如 recursive_sum([1,2,3])==6,不准用内置 sum()


第六章 类

6.1.3 定义类、实例属性、实例方法(结合书例)

class Dog:# 构造方法:创建实例时自动调用def __init__(self, name, age):# 实例属性self.name = nameself.age  = age# 实例方法:第一个参数必须是 selfdef bark(self):print(f"{self.name} 汪汪叫!")def human_age(self):# 狗年龄转人类年龄,简易 1:7return self.age * 7# 创建对象
dog1 = Dog("旺财", 3)
dog1.bark()
print(f"它相当于人类{dog1.human_age()}岁")

6.1.4 类属性与类方法(拓展,书上也讲)

class Student:# 类属性:所有实例共享school = "北京大学"def __init__(self, name):self.name = name# 类方法:第一个参数是 cls@classmethoddef change_school(cls, new_school):cls.school = new_schoolprint(Student.school)          # 北京大学
Student.change_school("清华")
print(Student.school)          # 清华

易错点

  • 实例方法忘记写 self,运行时报 TypeError: method() takes 0 positional arguments...
  • 类名一般大写驼峰,实例小写;不要混用。

小练习
写一个 Rectangle 类:

  • 构造方法接收宽、高;
  • 提供实例方法 area() 计算面积;
  • 提供类方法 square(cls, side) 快速创建正方形实例;
  • 创建 rect1(3,4) 与 sq1(5) 并分别打印面积。

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

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

相关文章

完整教程:Vue-Loader 深度解析:原理、使用与最佳实践

完整教程:Vue-Loader 深度解析:原理、使用与最佳实践2025-12-09 19:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

2025年口碑好的平开不锈钢合页/钢质门不锈钢合页TOP实力厂家推荐榜

2025年口碑好的平开不锈钢合页/钢质门不锈钢合页TOP实力厂家推荐榜 行业背景与市场趋势 随着建筑行业对高品质五金配件的需求不断提升,不锈钢合页作为门控五金的核心部件,其性能、耐用性和美观度直接影响门的使用寿…

Ganache-CLI以太坊私网JSON-RPC接口大全:从入门到精通 - 指南

Ganache-CLI以太坊私网JSON-RPC接口大全:从入门到精通 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

02 音视频开发--Windows环境搭建FFmpeg+Qt+Visual studio 2022

FFmpeg下载安装 FFmpeg下载官网打开命令窗口输入ffmpeg -versionQT下载安装 1.在Windows系统下,先创建QT账户 [QT]https://www.qt.io/qt下载地址(Linux) https://www.qt.io/download-qt-installer-ossCSDN教程 http…

#题解#洛谷P1045 麦森数#快速幂#高精度乘法#

P1045 [NOIP 2003 普及组] 麦森数 - 洛谷 分析2p-1的位数,易知:跟2p的位数相同,为[log10(2)*p]+1求末尾500位数字:高精度乘法+快速幂代码 #include<bits/stdc++.h> #define int long long #define endl \n …

MySQL主从之间具有不同数据类型的列的复制

MySQL主从之间具有不同数据类型的列的复制2025-12-09 19:08 abce 阅读(0) 评论(0) 收藏 举报主库和从库同一表中对应列的数据类型理想情况下应相同。但只要满足特定条件,此要求并非始终要求被严格执行。通常可将特…

2025实用AI洗头机品牌推荐榜:仪美天引领智能洗护,各大品牌各展所长

在如今的生活节奏越来越快的情况下,AI洗头机因为其高效、智能的洗护体验而逐渐成为了美容美发、养生保健等新刚需。为了帮助大家准确地挑选出适合自己的AI洗头机品牌,本次推荐榜将从企业的资质、技术水平、市场表现等…

2025年口碑好的大型面粉机行业内知名厂家排行榜

2025年口碑好的大型面粉机行业内知名厂家排行榜行业背景与市场趋势随着全球粮食加工行业的持续发展,大型面粉机械作为粮食加工产业链中的核心设备,其市场需求呈现出稳定增长态势。2025年,受人口增长、食品工业升级和…

2025年口碑好的高压SVG动态无功补偿装置/高压无功补偿装置厂家实力及用户口碑排行榜

2025年口碑好的高压SVG动态无功补偿装置/高压无功补偿装置厂家实力及用户口碑排行榜行业背景与市场趋势随着我国电力系统的快速发展,电网规模不断扩大,电力负荷日益复杂化,对电能质量的要求也越来越高。高压SVG动态…

2025年口碑好的全屋定制衣柜灯厂家最新实力排行

2025年口碑好的全屋定制衣柜灯厂家实力排行行业背景与市场趋势随着人们对家居品质要求的不断提升,全屋定制衣柜灯市场迎来了快速发展期。2025年,智能照明、健康光环境与个性化定制成为行业三大关键词。据市场调研数据…

一类通过寻找区间关键点从而弱化子区间的限制而优化复杂度的问题

那些我不会的感觉很深刻啊!感觉那么不可做的问题,分个类突然就十分容易了啊! CF1801G 给定一个字符串 \(t\) 和 \(n\) 个字符串 \(s_1, s_2, s_3, \dots, s_n\) \(m\) 次询问 \(t[l_i, r_i]\) 中出现了多少次 \(s_1…

计算机硬件基础知识 - Invinc

本文介绍一些计算机硬件方面的基础知识,旨在为电脑组装、配置升级、检测维修等提供一些帮助。本文介绍一些计算机硬件方面的基础知识,旨在为电脑组装、配置升级、检测维修等提供一些帮助。内存 内存检测工具 MemTest…

2025年评价高的耐高温钛杯/大冰花钛杯行业内口碑厂家排行榜

2025年评价高的耐高温钛杯/大冰花钛杯行业内口碑厂家排行榜行业背景与市场趋势随着消费者健康意识的不断提升和户外生活方式的流行,钛制水杯市场近年来呈现爆发式增长。钛金属因其轻质、耐腐蚀、无金属异味、耐高温等…

2025年专业定制触摸一体机最新TOP厂家排名

2025年专业定制触摸一体机TOP厂家排名行业背景与市场趋势随着数字化转型浪潮席卷全球,触摸一体机作为人机交互的重要载体,在各行各业的应用场景不断拓展。2025年,全球触摸屏市场规模预计将达到150亿美元,年复合增长…

自建机场

docker run --rm ghcr.io/xtls/xray-core:latest uuid记录 uuid wget https://github.com/XTLS/Xray-core/releases/download/v1.8.4/Xray-linux-64.zip apt-get install -y unzip unzip Xray-linux-64.zip ./xray x25…

告别盲目选型:2025 MES管理系统综合测评(价格、功能、实操性)

开头:干了十几年制造业,见过太多MES选型翻车的。核心就三个坑:一看报价心发慌, 二看功能被忽悠, 三上线后根本用不起来。今天咱们就扒开市场主流的几类MES方案,从实际价格、核心功能和落地难度来次硬核对比,帮你…

C++之函数(六) - Invinc

本文记录了C++中与函数相关的容易遗忘的一些知识。本文记录了C++中与函数相关的容易遗忘的一些知识。函数综述 为什么需要函数原型? 原型向编译器描述函数接口。也就是说,它告诉编译器该函数的返回值类型(如果有的话…

2025 雅思报班不踩雷!高口碑机构红榜 + 3 类考生适配指南

2025 雅思报班不踩雷!高口碑机构红榜 + 3 类考生适配指南一、选班纠结症?先搞懂你的核心需求 在决定踏上雅思备考之路后,很多同学都陷入了选择雅思培训机构的纠结中。在我看来,这是一个非常关键的决策,选对了机构…

2025年口碑好的opp束带行业内知名厂家排行榜

2025年口碑好的OPP束带行业内知名厂家排行榜 行业背景与市场趋势 随着全球包装行业的快速发展,OPP束带作为高效、环保的捆扎材料,广泛应用于电子、食品、医药、物流等领域。2025年,市场对自动化、高精度、耐用性…

102302124_严涛_第四次作业

1.使用Selenium框架+ MySQL数据库存储技术路线爬取“沪深A股”、“上证A股”、“深证A股”3个板块的股票数据信息。 (1) 代码:点击查看代码 import sqlite3 import logging from selenium import webdriver from se…