尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

python考点讲解- TYUT

python考点讲解- TYUT
📅 发布时间:2026/6/20 10:37:03

给出“是什么→为什么→怎么用→易错点→小练习”的完整讲解,每个知识点都配上可直接运行的 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 datetime → datetime.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) 并分别打印面积。

相关新闻

  • 2025年口碑好的平开不锈钢合页/钢质门不锈钢合页TOP实力厂家推荐榜
  • Ganache-CLI以太坊私网JSON-RPC接口大全:从入门到精通 - 指南
  • 02 音视频开发--Windows环境搭建FFmpeg+Qt+Visual studio 2022

最新新闻

  • 大兴安岭地区黄金回收去哪儿好?整理了5家靠谱实体店地址电话 - 三大殿
  • 承德市今日黄金回收价格多少?本地5家口碑门店报价参考 - 马刺总冠军
  • 2026 正规备案收金店,称重透明结算无隐藏扣费 - 讯息早知道
  • 贺州市黄金回收实体店怎么选?这份清单帮你货比三家 - 开始就结束
  • 金华市黄金回收猫腻多怎么办?整理了5家诚信回收店供参考 - 三大殿
  • 2026安徽省宣城市中考一两百分怎么办?口碑优选宠物护理专业最新发布 - cc江江

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号