Python 100例(长文解析)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

在编程学习的旅程中,实践是通往精通的必经之路。Python 语言凭借其简洁优雅的语法和广泛的应用场景,成为全球开发者入门的首选工具。而“Python 100例”正是通过系统化的案例训练,帮助学习者从基础语法到实战项目逐步提升。无论是初学者希望通过小例子巩固概念,还是中级开发者希望通过进阶案例拓展技能,这些精心设计的示例都能提供清晰的路径。本文将从核心知识点切入,结合具体案例,带领读者一步步探索 Python 的无限可能。


第一部分:基础语法与逻辑思维

例1:变量与数据类型

知识点:变量命名规则、数据类型(整型、浮点型、字符串、布尔型)。
案例:计算圆的面积与周长

radius = 5.0  
pi = 3.14159  
area = pi * radius ** 2  # 幂运算符 ** 的优先级高于乘法  
circumference = 2 * pi * radius  
print(f"半径为 {radius} 的圆,面积是 {area:.2f},周长是 {circumference:.2f}")  

比喻:变量就像快递柜的格口,每个格口(变量名)存放特定物品(数据值),而类型决定了物品的尺寸和形状。


例2:条件判断与分支结构

知识点if-elif-else 语句、逻辑运算符 and/or/not
案例:学生成绩评级系统

score = 85  
if score >= 90:  
    grade = "A"  
elif 80 <= score < 90:  
    grade = "B"  
else:  
    grade = "C"  
print(f"分数 {score} 对应等级:{grade}")  

比喻:条件语句如同交通信号灯,根据当前状态(红/黄/绿)决定车辆(程序流程)的下一步行动方向。


例3:循环结构与迭代控制

知识点for 循环、while 循环、break/continue
案例:斐波那契数列生成

a, b = 0, 1  
while a < 100:  
    print(a, end=' ')  
    a, b = b, a + b  # 元组解包实现简洁的数值交换  
print()  

比喻:循环就像唱片机,只要满足条件(唱片未结束),就会持续播放(执行代码块),而 break 是紧急停止按钮。


第二部分:数据处理与算法基础

例4:列表与元组操作

知识点:列表推导式、切片操作、内置函数 len()sum()
案例:统计班级成绩的平均值与最高分

scores = [78, 92, 85, 67, 95]  
average = sum(scores) / len(scores)  
highest = max(scores)  
print(f"平均分:{average:.1f},最高分:{highest}")  

比喻:列表是可伸缩的收纳盒,允许随时增减物品;元组则是密封盒,一旦装满就不能修改内容。


例5:字典与集合应用

知识点:键值对存储、集合的并集/交集运算。
案例:统计文本中单词的出现次数

text = "hello world hello python"  
word_counts = {}  
for word in text.split():  
    word_counts[word] = word_counts.get(word, 0) + 1  
print(word_counts)  # 输出:{'hello': 2, 'world': 1, 'python': 1}  

比喻:字典如同电话簿,通过姓名(键)快速查找电话号码(值);集合则像去重的抽屉,只保留唯一物品。


例6:函数设计与参数传递

知识点:函数定义、默认参数、*args**kwargs
案例:计算任意多边形的周长

def calculate_perimeter(side_length, sides=3):  
    return side_length * sides  
triangle = calculate_perimeter(5)  # 三角形周长  
square = calculate_perimeter(4, 4)  # 正方形周长  
print(f"三角形周长:{triangle},正方形周长:{square}")  

比喻:函数如同自动化工厂,将原材料(参数)加工成成品(返回值),默认参数就像预设的生产线模板。


第三部分:面向对象与模块化编程

例7:类与对象的创建

知识点class 定义、实例方法、构造函数 __init__
案例:模拟银行账户系统

class BankAccount:  
    def __init__(self, owner, balance=0):  
        self.owner = owner  
        self.balance = balance  
    def deposit(self, amount):  
        self.balance += amount  
        return self.balance  
    def withdraw(self, amount):  
        if amount <= self.balance:  
            self.balance -= amount  
        else:  
            print("余额不足")  
            return None  
        return self.balance  
account = BankAccount("Alice", 1000)  
print(account.deposit(500))  # 输出:1500  
print(account.withdraw(2000))  # 输出:余额不足  

比喻:类是图纸,对象是根据图纸建造的房屋;方法则是房屋内的智能设备,执行特定功能。


例8:模块导入与包管理

知识点import 语句、模块作用域、标准库与第三方库。
案例:使用 datetime 模块计算年龄

from datetime import datetime  
def calculate_age(birthdate_str):  
    birthdate = datetime.strptime(birthdate_str, "%Y-%m-%d")  
    today = datetime.now()  
    return today.year - birthdate.year - ((today.month, today.day) < (birthdate.month, birthdate.day))  
print(calculate_age("1990-05-15"))  # 输出当前年份对应的年龄  

比喻:模块如同工具箱,Python 标准库提供了基础工具(扳手、螺丝刀),而第三方库(如 pandas)则是更专业的设备(电钻、激光切割机)。


第四部分:进阶技巧与实战项目

例9:文件读写与异常处理

知识点with 上下文管理器、try-except 块。
案例:统计文本文件的行数与单词数

try:  
    with open("example.txt", "r") as file:  
        lines = file.readlines()  
except FileNotFoundError:  
    print("文件不存在,请检查路径")  
else:  
    line_count = len(lines)  
    word_count = sum(len(line.split()) for line in lines)  
    print(f"总行数:{line_count},总单词数:{word_count}")  

比喻:异常处理如同安全气囊,在程序"碰撞"(错误发生)时提供保护,避免系统完全崩溃。


例10:正则表达式与文本匹配

知识点re 模块、匹配模式(re.findallre.sub)。
案例:提取网页中的邮箱地址

import re  
text = "联系邮箱:user@example.com,客服邮箱:support@company.org"  
pattern = r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"  
emails = re.findall(pattern, text)  
print(emails)  # 输出:['user@example.com', 'support@company.org']  

比喻:正则表达式如同精密筛子,根据特定规则(模式字符串)过滤出符合要求的文本颗粒。


例11:网络请求与 API 调用

知识点requests 库、HTTP GET/POST 方法。
案例:获取天气信息

import requests  
response = requests.get("https://api.weatherapi.com/v1/current.json",  
                       params={"key": "YOUR_API_KEY", "q": "London"})  
data = response.json()  
print(f"伦敦当前温度:{data['current']['temp_c']}°C")  

比喻:API 接口如同餐厅的菜单,通过特定的"菜名"(API 端点)和"调料参数"(请求参数),获取对应的"菜品数据"。


第五部分:性能优化与调试技巧

例12:列表推导式 vs 循环效率对比

知识点:性能分析、timeit 模块。

import timeit  
def loop_method():  
    result = []  
    for x in range(10000):  
        if x % 2 == 0:  
            result.append(x**2)  
def list_comprehension():  
    return [x**2 for x in range(10000) if x % 2 == 0]  
print("循环方式耗时:", timeit.timeit(loop_method, number=100))  
print("列表推导式耗时:", timeit.timeit(list_comprehension, number=100))  

实验结果:列表推导式通常比显式循环快 3-5 倍,体现 Python 的"用语言特性代替手动循环"的优化原则。


例13:调试工具 pdb 的使用

知识点:断点设置、变量查看、单步执行。

import pdb  
def buggy_code(x):  
    pdb.set_trace()  # 设置断点  
    y = x * 2  
    z = y / 0        # 故意制造除零错误  
    return z  
buggy_code(5)  

比喻:调试器如同程序的"体检中心",帮助开发者定位"病灶"(错误)并分析"病因"(变量状态)。


结论

通过“Python 100例”的系统学习,开发者不仅能掌握从基础语法到实战项目的完整技能链条,更能培养解决问题的逻辑思维能力。每个案例都像一块拼图,最终拼凑出完整的 Python 知识图谱。建议读者在学习时遵循"理解-模仿-创新"的三部曲:先吃透代码逻辑,再尝试修改参数或功能,最后结合实际需求创造新项目。记住,编程不是单纯记忆语法,而是通过实践将知识转化为解决问题的工具。未来,随着对更多案例的探索(如机器学习模型训练、Web 后端开发等),你将逐步解锁 Python 在人工智能、数据分析等领域的强大潜力。保持好奇心,持续实践,Python 100例的学习旅程将为你的开发者之路奠定坚实基础。

最新发布