尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Python 100道练习题:从基础语法到动手实践的高效训练指南

Python 100道练习题:从基础语法到动手实践的高效训练指南 我先给你看一个很现实的问题Python 入门视频收藏了一堆教程买了好几本一到自己写代码还是只会print(hello world)。如果现在的状态是“看得懂、写不出、一动手就卡”那问题大概率不是智商而是练得太少。这个标题说的 100 道练习题就是给你补上“动手”这一环的。先说结论这 100 道题作为 Python 语法和基础算法训练覆盖范围比较全面从变量、循环、函数到字符串处理、数据结构、递归、文件操作都有涉及。它的价值不在于题目有多难而在于把日常编程最常用的知识点通过一道一道题串起来。如果你能按节奏刷完并且每道题都自己先写一遍再对答案编程手感会有明显提升。这篇文章不会只甩给你一个题目链接而是围绕“怎么用这套题高效练习”来写先看题目结构、再给出练习环境的搭建方式、然后是一套可以照抄的每日练习流程、最后是常见卡点和排查思路。文末还会给一批可直接运行的练习题示例代码方便你边读边练。1. 核心能力速览先把这套练习题的核心信息整理成表格方便快速判断适不适合自己。能力项说明项目类型Python 入门到进阶语法练习题集题目数量100 道按主题分类难度分布从基础语法到递归、文件操作、算法思维适合人群Python 零基础、学完语法但缺少练习、准备求职笔面试的初学者前置要求会安装 Python能运行.py文件即可运行环境Windows / macOS / Linux 均可是否需要 GPU不需要任何能运行 Python 的电脑都可以是否需要联网练习本身不需要下载题目或查资料时需要练习方式每天做 3 到 5 道配合代码运行验证重点覆盖变量与数据类型、分支判断、循环、函数、字符串、列表/字典、集合、递归、文件读写、基础算法不适合场景想系统学习 Web 开发、爬虫、数据分析等某个方向的场景这套题最大的特点是“练”不是“讲”。每道题都对应一个明确的编程能力点做完一道就能立刻看到运行结果反馈非常直接。这和看视频、读书是完全不同的学习路径。2. 适用场景与使用边界先别急着找题先搞清楚这套题适合放在你学习规划的哪个位置。2.1 适合谁用刚学完 Python 基础语法的人变量、列表、for 循环、if 判断都会了但代码写得少通过刷题把知识点变成肌肉记忆。准备找实习或初级开发岗位的人笔试常有基础算法题用这套题练手可以覆盖大部分简单到中等难度的问题。想系统梳理 Python 语法的人题目的分类设计相当于带你按知识点过了一遍 Python 核心语法。自学容易半途而废的人每天 3 到 5 道题的节奏目标明确成就感来得快比“每天看两小时视频”更容易坚持。2.2 能解决什么问题解决“看得懂但写不出来”的问题。解决“只会抄代码不会自己组织逻辑”的问题。解决“学的知识点零散不知道什么场景用什么语法”的问题。解决“代码跑起来报错不知道怎么调”的问题。2.3 不适合什么场景想系统学习 Python Web 开发Django、Flask这套题不涉及建议直接去做项目。想专攻数据分析NumPy、Pandas 需要单独系统学这套题只是前置基础。想学爬虫这套题里有文件操作和字符串处理但不是爬虫专项。已经是熟练开发者题目偏基础对你的提升有限。2.4 使用边界练习题普遍来自公开的 Python 练习题库和教学场景用来自学没有问题。如果题目原文来自某本书或付费课程注意不要批量转载用于商业课程售卖。把练习题用于求职笔面试准备时建议理解每道题的解法思路而不是背答案。自己写的练习代码如果有独特的解题思路保留好注释再发布比较稳妥。3. Python 本地开发环境准备刷题之前先把本地环境搭好。这里的核心诉求不是用多高级的 IDE而是“写完代码立刻能跑、报错能看懂”。推荐使用“Python 解释器 VS Code”的组合轻量且足够用。3.1 检查本机是否已安装 Python在命令行执行python --version如果输出类似Python 3.10.x或更高版本说明已经安装。如果是Python 2.7.x建议卸载后安装 Python 3。如果提示“python 不是内部或外部命令”说明还没有安装或没有加入环境变量。Windows 系统如果python命令找不到尝试py --version3.2 安装 Python到 Python 官网下载对应系统的最新稳定版。安装时重点注意在安装向导第一页勾选“Add Python to PATH”这一步可以避免后续命令行找不到 Python 的问题。安装完成后重新打开命令行验证python --version pip --version两条命令都能输出版本信息说明环境已经可用。3.3 安装 VS Code 和 Python 插件推荐 VS Code 作为练习编辑器体积小、启动快配合 Python 插件可以做到代码补全和运行。装完 VS Code 后在扩展市场搜索“Python”安装微软官方发布的 Python 扩展。然后安装 Code Runner 扩展可以一键运行当前.py文件。当然如果你喜欢 PyCharm也可以直接用。社区版足够刷题。3.4 建立练习题工作区在本地创建专门的练习目录比如python_practice/ ├── day01/ ├── day02/ ├── day03/ ├── ... └── day07/每天新建一个文件夹当天的题目代码都放进去。这样做的好处方便每天快速进入状态。题目之间互相独立不会因为不同文件的导入问题报错。结束后可以清晰看到一周的产出有正反馈。4. 练习题分类与难度规划100 道题看似很多实际把题目做一个简单分类后学习路径会清晰很多。这里给一个通用的分类方式具体以你手上的题目为准。4.1 题目类型划分分类覆盖知识点大概题量基础语法题变量、数据类型、输入输出、类型转换10-15 道分支与循环if/else、for、while、嵌套循环20-25 道字符串处理切片、格式化、常用字符串方法、正则15-20 道数据结构列表、元组、字典、集合、推导式20 道左右函数与递归函数定义、参数传递、递归思想10-15 道文件与异常文件读写、JSON 处理、异常捕获5-10 道综合算法排序、查找、动态规划入门10 道左右这个分类的好处你不需要每天遇到什么题就做什么题而是可以按知识点集中突破。比如第一天做基础语法和简单分支第二天专攻循环第三天处理字符串这样知识体系是系统搭建起来的不是零散的。4.2 一周规划建议日期练习重点建议完成题量第 1 天基础语法、变量、输入输出、类型转换15 道第 2 天分支判断、循环结构20 道第 3 天字符串处理、列表操作20 道第 4 天字典、集合、推导式15 道第 5 天函数、递归15 道第 6 天文件操作、异常处理10 道第 7 天综合题复习查漏补缺5-10 道再次说明这个规划是参考节奏。如果前面基础题做起来很快可以一天做 20 道如果综合题卡住了一天做 3 道也正常。重点是“持续”不是“追进度”。5. 练习题实战示例与讲解只讲规划不讲具体题目等于没有讲。这里挑几个有代表性的练习题给出题目描述、参考代码和运行结果方便你对照理解。这些题本身也可以作为你练习的启动素材。5.1 题目一判断水仙花数题目描述一个三位数各位数字的立方和等于它本身这个数就是水仙花数。例如153 1^3 5^3 3^3。编写程序输出所有的水仙花数。考察知识点循环、取余、整除、条件判断。参考代码# 水仙花数判断 for num in range(100, 1000): # 取出百位、十位、个位 hundreds num // 100 tens (num // 10) % 10 ones num % 10 # 判断立方和是否等于原数 if hundreds ** 3 tens ** 3 ones ** 3 num: print(num)运行结果153 370 371 407题目价值这道题可以把取余和整除运算彻底搞清楚。很多初学者混淆%和//通过提取数位这种场景很容易理解它们的区别。5.2 题目二斐波那契数列题目描述斐波那契数列的第 1 项和第 2 项都是 1从第 3 项开始每一项等于前两项之和。输出前 20 项。考察知识点循环、变量交换、列表追加数据。参考代码# 输出斐波那契数列前 20 项 n 20 a, b 1, 1 result [] for _ in range(n): result.append(a) a, b b, a b print(result)运行结果[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]题目价值这是理解“迭代更新变量”的经典题。写一次a, b b, a b比看十遍书上的讲解都管用。5.3 题目三字符串反转题目描述给定一个字符串s Python Practice将其反转输出。考察知识点字符串切片、步长参数。参考代码# 字符串反转 s Python Practice reversed_s s[::-1] print(reversed_s)运行结果ecitcarP nohtyP题目价值不理解[::-1]含义的人会写出一个复杂的循环去反转字符串。通过这道题可以理解 Python 切片中的start:stop:step三个参数。5.4 题目四统计字符串中每个字符出现的次数题目描述给定一个字符串s hello world统计每个字符出现的次数忽略空格。考察知识点字典、循环、条件判断。参考代码# 统计字符出现次数 s hello world char_count {} for ch in s: if ch : continue if ch in char_count: char_count[ch] 1 else: char_count[ch] 1 print(char_count)运行结果{h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}题目价值字典是 Python 数据分析里最高频使用的数据结构之一。这道题是理解“用字典做统计”的最基础模型之后接触词频分析也是同样的思路。5.5 题目五用递归实现阶乘题目描述编写函数factorial(n)返回n!的值使用递归实现。考察知识点函数定义、递归边界条件。参考代码# 递归实现阶乘 def factorial(n): if n 1: return 1 return n * factorial(n - 1) # 测试 print(factorial(5)) print(factorial(10))运行结果120 3628800题目价值递归是很多初学者会卡住的知识点。这道题是理解递归的入门题关键是搞清楚“边界条件”和“递归调用自身”这两个部分。5.6 题目六读取文件并统计行数题目描述创建一个文本文件data.txt写入若干行文字然后编写代码统计文件行数。考察知识点文件读写、with 语句。参考代码# 写入文件 with open(data.txt, w, encodingutf-8) as f: f.write(第一行\n) f.write(第二行\n) f.write(第三行\n) # 统计行数 with open(data.txt, r, encodingutf-8) as f: lines f.readlines() print(f文件共 {len(lines)} 行)运行结果文件共 3 行题目价值文件操作是脚本类工作的基础能力。这道题能帮你理解open()的模式参数、with的作用以及文件读写的标准流程。6. 高效刷题流程与代码验证做题不光是写代码更重要的是有一套可复用的流程。推荐下面这个“四步刷题法”遇到新题时按顺序执行。6.1 第一步先手写思路不要一上来就敲代码。先读题在纸上或注释里写出你的大致步骤输入是什么。输出是什么。中间要做什么转换。比如“判断水仙花数”这道题思路可以写成# 遍历 100 到 999 # 取出每个数的百位、十位、个位 # 计算立方和 # 如果等于原数就输出这一步的意义是强迫你把“题目语言”翻译成“步骤语言”避免边写边想导致的逻辑混乱。6.2 第二步写完代码立刻运行写完代码不要只盯着看立刻运行。无论是 VS Code 里的 Run 按钮还是命令行执行都要让代码跑起来。运行结果会直观地告诉你有没有写错。python practice_today.py6.3 第三步对比答案不看答案先自己写写不出来再看答案。看答案时不要只看最后结果要看它的写法和你哪里不一样。比如你用循环写了一长串结果答案一行切片就搞定这就是你知识点的盲区。6.4 第四步记录错误和盲区准备一个notes.md把每天做错的题和卡住的点记录下来。格式建议# 第 1 天记录 ## 卡住的题字符串反转 - 原因不理解切片参数的 start:stop:step 含义 - 解决重新复习切片相关知识点 - 教训涉及序列操作时优先考虑切片这样做的好处是一周结束后你可以很清楚自己的薄弱点在哪里而不是做完就忘。6.5 单元测试式验证练习到中后期建议把函数单独提取出来自己写几条assert来验证正确性。例如def is_palindrome(s): return s s[::-1] # 单元测试式验证 assert is_palindrome(aba) is True assert is_palindrome(abc) is False assert is_palindrome(a) is True print(全部测试通过)这比直接打印结果更接近实际开发中的测试习惯也能帮助你养成“验证代码”的意识。7. 刷题常见问题与排查方法刷题过程中肯定会遇到各种报错和卡点这里列一下最常见的问题和排查思路。问题现象可能原因排查方式解决方案SyntaxError: invalid syntax多半是少写冒号、括号没闭合按照报错提示的代码行数检查重点检查 if/for/def 结尾的冒号是否漏掉IndentationError缩进不一致检查混合使用 Tab 和空格统一用 4 个空格缩进VS Code 可设置NameError: name xx is not defined变量名写错或变量在使用之前没有定义检查赋值语句的位置确保变量先赋值再使用TypeError: unsupported operand type(s)变量类型不匹配比如 int 和 str 相加用print(type(x))查看变量类型使用int()、str()等显式转换类型IndexError: list index out of range访问列表不存在的下标检查索引值和len()长度注意最后一个元素索引是len - 1循环陷入死循环while 条件永远为真检查循环体内是否有改变条件的语句在循环体内更新条件变量或加break条件输出结果和预期不符优先级问题或边界条件考虑不全加入print()打印中间变量分步输出中间值定位逻辑错误位置不确定自己的算法对不对只测一个用例不足以说明问题多测试边界情况测试空输入、极端值、重复值等7.1 关于“代码跑不出来”的通用排查思路如果代码报错不要直接改答案。先做两件事把报错信息原文复制到搜索框里往往能直接搜到解释。在代码中加入几行临时print()看执行到哪一步出错。很多逻辑错误不是一眼能看出来的打印中间变量的方式最直接也更可靠。7.2 关于“看到答案后才懂自己做就想不起来”的情况这是初学者非常普遍的现象原因是知识还没有内化。解决办法只有一个第二天把前一天的题重新做一遍不做任何参考单独完成。这道题真正掌握的标准是第二天不看答案能独立写出来。建议每周至少做一次“不看答案复盘”把之前写过但没有完全消化的题目重新过一遍。8. 从“刷题”到“做项目”的衔接路径100 道题刷完后下一个自然的问题是接下来学什么如果继续做更多同类型的题边际收益会明显下降。更有效的做法是把练习题中学会的能力往实际场景迁移。8.1 练习题与真实开发的对应关系练习中学会的能力对应真实开发场景字符串处理日志分析、文本清洗、爬虫数据解析字典与统计数据分析中的分组聚合、词频统计文件读写配置文件处理、批量重命名文件、数据处理管道函数封装模块化开发、接口封装、复用工具函数异常处理网络请求容错、用户输入校验、文件缺失处理8.2 推荐的下一个练习方向用 Python 写一个命令行版学生成绩管理系统需支持添加、删除、查找、保存到 JSON 文件。写一个批量文件重命名脚本把文件夹里的中文名改成英文名。用requests库写一个简单爬虫爬取一个公开网页的标题和链接列表。用csv模块读取一个表格文件统计某一列数据并输出结果。这些项目都会用到你在练习题里积累的能力但需要你主动组合这些能力去解决完整问题编程能力在这一步才开始真正提升。8.3 坚持记录练习笔记最后建议刷题过程中记录笔记的价值比刷题本身更大。你可以用notes.md记录每天的关键知识点也可以单独维护一个“自己容易犯的错误清单”。因为这个清单是基于你的实际错误生成后面写项目或准备面试时会非常高效。9. 总结与下一步回到标题本身“一周练完这 Python 100 道练习题”这个说法能不能实现我的看法是如果只是快速过一遍一周以内完成是可以的但如果要求每道题都独立写出、理解原理并能举一反三那么一周做完 100 道题的说法确实有点紧凑。更合理的目标是用 7 到 10 天把基础类题目过完再用 5 到 7 天反复复盘薄弱题型。这篇内容的核心建议是不要追求一天做很多道题而是每天固定投入 1 到 2 小时做完的题第二天再独立做一遍把“看懂”变成“会写”。这样练习的效果比反复读教程强得多。接下来可以做的第一件事安装 Python 和 VS Code在工作区建好day01文件夹从“判断水仙花数”和“斐波那契数列”这两道题开始跑通流程。如果你的本机已经有 Python 环境那就直接进入每天的练习节奏坚持 7 天后再回头看看一周前的自己你会明显感觉到变化。这套练习题里最值得花时间研究的不是最终结果而是每一步的思考过程和报错调整。把每一次报错都当成一次学习机会写代码的手感自然会慢慢上来。
返回列表