科创工坊 · Python 编程

Python 编程实战系统课

从零开始学 Python,掌握语法基础、数据结构与简单算法,再用 Turtle 海龟制图将代码变成看得见的艺术。48 节系统课程,带你真正理解"用代码解决问题"的工程思维。

48
系统课时
90分钟
单课时长
4个阶段
进阶体系
12+
实战项目
01
语法基础
变量 · 流程控制 · 函数
第 1-12 课
02
数据结构
列表 · 字典 · 文件操作
第 13-24 课
03
简单算法
排序 · 查找 · 递归入门
第 25-36 课
04
Turtle 制图
几何图形 · 分形 · 艺术画
第 37-48 课
🐍

第一阶段:Python 语法基础

变量与数据类型 · 输入输出 · 流程控制 · 函数定义

01

认识 Python · 第一行代码

环境配置print()注释
安装 Python + IDLE(或 VS Code),运行第一个程序:`print("Hello, Python!")`。了解什么是解释器、什么是终端,学会用注释给代码写说明。
作品:自我介绍小程序
02

变量与数据类型

int · float · str · booltype()类型转换
变量是存数据的"盒子"。学习四种基本类型:整数、浮点数、字符串、布尔值。用 `type()` 查看类型,用 `int()` / `str()` 做类型转换,避开常见报错。
作品:BMI 计算器
03

输入与字符串操作

input()字符串拼接f-string
用 `input()` 让程序接收用户输入,用 f-string 格式化输出漂亮的结果。学习字符串切片、`len()`、`upper()`、`replace()` 等常用方法,处理文本游刃有余。
作品:聊天机器人雏形
04

运算符与表达式

算术运算比较运算逻辑运算 and/or/not
深入理解 `+` `-` `*` `/` `//` `%` `**` 七种算术运算符,掌握比较运算(`==` `!=` `>` `<`)和逻辑运算(`and` `or` `not`)。弄懂优先级,不再写出隐藏 Bug。
作品:判断闰年程序
05

条件判断:if / elif / else

if · elif · else嵌套条件缩进规则
Python 用缩进控制代码块,这和其他语言不一样。掌握 `if-elif-else` 多分支结构,学会嵌套条件。写出能根据输入做出不同反应的智能程序。
作品:石头剪刀布游戏
06

循环:for 与 while

for · range()while · break · continue循环嵌套
用 `for` 循环遍历序列,用 `range()` 控制次数;用 `while` 循环做条件驱动的重复。`break` 提前退出,`continue` 跳过本次。写出九九乘法表,搞定双层循环。
作品:九九乘法表 + 猜数字游戏
07

函数:封装与复用

def · return参数与默认值局部变量
函数是把一段代码"打包"起来的方式。学习 `def` 定义函数、`return` 返回值、位置参数和默认参数。理解局部变量和全局变量的区别,写出整洁可复用的代码。
作品:工具函数库(温度转换、几何计算)
08

模块与标准库

import · frommath · random · timepip 安装
Python 强大在于它庞大的库生态。学习 `import` 导入模块,使用 `math`(数学)、`random`(随机)、`time`(时间)三个标准库。了解 `pip` 安装第三方库的方法。
作品:随机密码生成器
09

异常处理:try / except

try · except · finally常见异常类型输入验证
程序不能怕出错,要会处理错误。学习 `try-except` 捕获异常,了解 `ValueError` `ZeroDivisionError` `TypeError` 等常见类型,用 `finally` 做收尾。写出健壮不崩溃的程序。
作品:带容错的计算器程序
10

字符串深入与正则初探

split · join · stripin · find · count正则 re 模块入门
字符串处理是 Python 最强的能力之一。深入学习 `split` 分割、`join` 合并、`strip` 去空白、`find` 查找。认识 `re` 正则模块,用模式匹配提取手机号、邮箱。
作品:文本词频统计工具
11

综合练习:命令行小工具集

综合应用代码整理多函数协作
综合前 10 节语法知识,写出 3 个实用小工具:① 成绩等级转换器 ② 数字猜谜游戏(带提示"太大/太小") ③ 简单记账本(输入支出,统计总额)。
同学互相测试,找出彼此代码中的 Bug
P1

🏆 阶段项目:命令行互动游戏

条件+循环+函数多功能菜单完整程序
综合阶段一所有知识,独立完成一个命令行互动游戏。可选:① 文字冒险 RPG(多个场景、背包道具、HP系统)② 单词记忆闯关(随机出题、计时、错题重练)③ 数学竞赛题生成器(自动出题、评分、记录最高分)。代码不少于 100 行,有清晰的函数划分。
结课展示:演示游戏 + 讲解代码结构
📦

第二阶段:数据结构与文件

列表 · 元组 · 字典 · 集合 · 文件读写 · 面向对象入门

13

列表:有序的数据集合

创建与索引append · remove · pop列表推导式
列表是 Python 最常用的数据结构。学习创建列表、用索引访问元素(正序/倒序)、增删改查操作,以及简洁强大的列表推导式 `[x*2 for x in range(10)]`。
作品:成绩管理系统(增删查改)
14

元组与集合

tuple 不可变set 去重交集并集差集
元组像"只读列表",适合存不需要修改的数据(如坐标);集合自动去重,支持数学集合运算。理解什么时候用列表、什么时候用元组或集合,做出正确的数据结构选择。
作品:班级选课重叠分析工具
15

字典:键值对数据存储

dict 创建与访问keys · values · items字典推导式
字典是 Python 里最灵活的数据结构,用"键→值"方式存储数据。掌握增删改查、遍历 `keys()` / `values()` / `items()`,以及字典推导式。是 JSON 数据处理的基础。
作品:通讯录查询程序
16

嵌套数据结构

列表嵌套字典字典嵌套列表JSON 格式
现实中的数据往往是嵌套的,比如"学生列表,每个学生有姓名和成绩字典"。学习访问多层嵌套结构,理解 JSON 格式与 Python 字典的对应关系,为处理真实数据做准备。
作品:班级成绩单(多科目嵌套字典)
17

文件读写:让数据持久保存

open · read · writewith 语句txt · csv 文件
程序关了数据就消失了?文件读写来解决。学习 `open()` 打开文件、`read()` / `write()` 读写、用 `with` 语句安全关闭文件。处理 `.txt` 文本文件和 `.csv` 表格文件。
作品:日记本程序(支持保存和读取)
18

面向对象初步:类与对象

class · __init__属性与方法self 关键字
面向对象是现代编程的核心思想。用"设计蓝图"的比喻理解类(Class)和对象(Object)。学会定义类、用 `__init__` 初始化属性、调用方法,把现实问题用对象来建模。
作品:学生类、银行账户类
19

继承与多态

继承 · super()方法重写多态
子类继承父类的属性和方法,还可以重写覆盖。通过"动物→狗/猫/鸟"的例子理解继承树,用 `super()` 调用父类方法。初步体验多态:同一个方法名,不同类有不同表现。
作品:动物园信息管理系统
20

综合实战:用类重构项目

OOP 设计类 + 文件代码重构
把第一阶段的命令行游戏或小工具,用面向对象的思想重写一遍。用类来组织代码,把数据存入文件实现持久化。感受 OOP 让代码更清晰、更易维护的好处。
对比重构前后代码,分析改进点
P2

🏆 阶段项目:图书馆管理系统

列表+字典类与继承文件持久化
设计一个命令行图书馆管理系统:① 书籍类(书名、作者、ISBN、是否借出)② 图书馆类(添加书、借书、还书、搜索)③ 用户类(借阅记录、逾期提醒)④ 数据保存到 JSON 文件,重启程序不丢失。代码不少于 150 行,结构清晰,有完整注释。
结课展示:演示功能 + 讲解类设计思路
⚙️

第三阶段:简单算法入门

排序 · 查找 · 贪心 · 递归 · 时间复杂度初步

25

算法是什么?怎么衡量好坏

算法概念时间复杂度 O(n)空间复杂度
算法就是"解决问题的步骤"。通过生活中的例子(找书、排队、地图导航)理解算法的本质。初步认识 O(1)、O(n)、O(n²) 时间复杂度,知道什么叫"高效算法"。
讨论:在100万个数里找一个数,最多找几次?
26

冒泡排序与选择排序

冒泡排序选择排序O(n²) 分析
用动画理解"两两比较交换"的冒泡排序,用 Python 实现;理解"每轮找最小值"的选择排序。分析两者的时间复杂度都是 O(n²),感受算法可视化的魅力。
作品:可视化排序过程(打印每步状态)
27

插入排序与 Python 内置排序

插入排序sort() · sorted()key 参数
插入排序就像整理扑克牌。学习实现后,对比 Python 内置的 `.sort()` 和 `sorted()` 函数(底层是 Timsort,O(n log n))。掌握 `key` 参数,按任意规则排序复杂数据。
作品:按成绩/姓名多字段排序的学生名单
28

线性查找与二分查找

线性查找 O(n)二分查找 O(log n)bisect 模块
在1000万个数里找目标,线性查找最坏要找1000万次;二分查找只需约23次。亲手实现二分查找,深刻感受 O(log n) 的威力。了解 `bisect` 模块的实际用法。
挑战:猜1-100的数字,最少几次必猜中?
29

栈与队列的应用

栈 LIFO队列 FIFOcollections.deque
用列表模拟栈(LIFO:后进先出),用 `collections.deque` 模拟队列(FIFO:先进先出)。理解浏览器"返回"按钮、撤销操作的栈原理;理解排队系统的队列原理。
作品:括号匹配检查器(用栈)
30

贪心算法思想

贪心策略最优子结构找零问题
贪心算法的思路:每一步都选当前最优。通过"找零问题"(用最少硬币凑出金额)、"区间调度"(安排最多不冲突的活动)两个经典题目,理解贪心思想的适用场景与局限性。
作品:活动安排最优化程序
31

递归:函数调用自身

递归定义基础案例 · 递归案例调用栈
递归就是"函数调用自己"。通过阶乘、斐波那契数列两个经典例子理解递归的结构:一定要有终止条件(基础案例),否则无限递归爆栈。用图示理解调用栈的展开与回收。
作品:递归求阶乘、斐波那契、汉诺塔
32

枚举与暴力法

暴力枚举双重/三重循环剪枝优化
很多问题用"暴力枚举所有可能"都能解决,虽然不够快,但是思路清晰。学习如何写多重循环枚举,同时学会"剪枝"——提前排除不可能的情况来提速。
挑战:百鸡百钱、三位数水仙花数
P3

🏆 阶段项目:算法挑战赛

排序+查找递归贪心
小组 PK 赛!每组抽 3 道算法题(含排序、查找、递归各 1 道),限时 90 分钟内完成。题目来自洛谷 P 系列入门难度。完成后由老师逐题讲解最优解,对比不同思路的效率差异。额外挑战:用 matplotlib 绘制各种排序算法的对比折线图。
颁奖仪式 + 总结各组的亮点解法
🐢

第四阶段:Turtle 海龟制图

几何图形 · 颜色填充 · 分形艺术 · 动态动画

37

Turtle 入门:画你的第一条线

forward · backwardleft · rightpenup · pendown
海龟就是一个"能画画的小机器人"。学习最基本的指令:前进、后退、左转、右转、抬笔/落笔。理解 Turtle 的坐标系和角度方向。用 for 循环轻松画出正多边形。
作品:正方形、正六边形、正十二边形
38

颜色、画笔与填充

pencolor · fillcolorbegin_fill · end_fillRGB 颜色
给图形上色!学习设置画笔颜色 `pencolor()`、填充颜色 `fillcolor()`,用 `begin_fill()` / `end_fill()` 给封闭图形填色。用 RGB 值自定义任意颜色,画出彩色几何图案。
作品:彩色同心圆、彩虹条纹
39

循环绘图:玫瑰线与花瓣

循环 + 角度变化圆弧 circle()图案重复
用 `circle()` 画弧和圆,结合循环每次旋转一个角度,就能画出太阳花、螺旋线、玫瑰花等美丽图案。探索"每次移动+旋转"的规律,理解几何变换与代码的关系。
作品:多瓣玫瑰花图案
40

分形图形:科赫曲线

分形概念递归绘图科赫雪花
分形是"自相似"的几何图形,局部放大后和整体形状相同。用递归函数画科赫曲线:把一条线段"中间变成山峰",不断递归,就变成了雪花!感受递归与数学之美的完美融合。
作品:3阶/4阶科赫雪花
41

分形树与谢尔宾斯基三角形

递归分支分形树谢尔宾斯基
用递归画"分叉树":每根树枝再长出两根小树枝,不断递归就变成了真实的大树!再挑战谢尔宾斯基三角形——把一个三角形不断切成小三角形,展示分形的无穷层次。
作品:春天的彩色分形树
42

动态动画:让图形动起来

tracer · updateontimer 定时器动画原理
静态图形太单调!学习 `tracer(0)` 关闭自动刷新 + `update()` 手动刷新的技巧,实现流畅动画。用 `ontimer()` 做定时回调,让小球弹跳、太阳旋转,把静态画面变成动态演示。
作品:弹跳小球动画
43

键盘事件与互动绘图

onkey · listenonscreenclick多 Turtle 对象
让用户能控制海龟!学习 `onkey()` 绑定键盘事件、`onscreenclick()` 响应点击。创建多个 Turtle 对象,让它们各自独立移动。做出一个能用方向键控制的绘图小游戏。
作品:键盘控制画笔自由绘图板
44

文字与屏幕交互

write() 文字输出textinput · numinputScreen 设置
用 `write()` 在画布上输出文字,用 `Screen.textinput()` 弹出输入框获取用户名字,用 `numinput()` 获取数字。做出能显示分数、能输入姓名的完整 Turtle 小程序。
作品:带倒计时的打字练习小游戏
45

数学函数可视化

坐标轴绘制sin · cos 曲线参数方程
把数学公式变成图形!用 Turtle 画坐标轴,然后用 `math.sin()` / `math.cos()` 计算 y 值,描点连线,画出正弦波、余弦波、李萨如图形(两个正弦叠加的美丽曲线)。
作品:sin+cos 合成的参数曲线图
46

Turtle + 算法可视化

排序可视化动态柱状图sleep 控制速度
把第三阶段的排序算法用 Turtle 可视化!用柱状图表示数组,每次比较/交换时重绘对应的柱子,用 `time.sleep()` 控制速度。把抽象的算法变成直观的动态演示。
作品:冒泡排序 + 选择排序双屏对比动画
47

综合创作:我的艺术代码

自由创作random 随机美术作品策划
48 节课即将结束,用 Turtle 创作一件属于自己的"艺术代码"作品。可以是城市夜景、宇宙星空、中国传统纹样、个人专属图标……发挥创意,把整个学期学到的语法、算法、制图技巧都用上。
构思草图 + 代码规划,下节课展示
P4

🏆 结课项目:Python 作品博览会

综合所有知识独立完整作品公开展示
48 节课的终点,也是真正编程之路的起点!每位同学提交一件综合作品(任选方向):① 完整的命令行游戏或工具(含文件持久化)② 算法可视化演示系统(含3种以上算法对比)③ Turtle 艺术动画(含交互功能)作品评分维度:创意性 / 代码完整性 / 运行稳定性 / 演讲表达。邀请家长观摩,颁发结课证书。
🎓 结课典礼 · 颁发证书 · 家长观摩大会

为什么选 Python?

🌍
全球最受欢迎语言
连续多年蝉联 TIOBE 排行榜第一,AI / 数据科学 / 自动化的首选语言
📖
语法简洁易读
接近自然英语的语法,让初学者专注于解题思路,而不是记忆语法规则
🏆
CSP/NOI 指定语言
信息学联赛 CSP-J/S 官方支持 Python,学好了可以直接参加正式竞赛
🎨
Turtle 可见即可学
每一行代码立刻变成图形,让抽象概念变得直观,学习动力显著提升
🔗
通向 AI 的大门
NumPy、pandas、TensorFlow 全用 Python,学好 Python 就等于学好了 AI 入门
库生态极其丰富
35万+开源库,爬虫、数据分析、游戏、GUI 应有尽有,想做什么都能找到

每节课上什么

💡

知识导入

生活案例类比,带出本节核心概念,讲清"为什么需要这个"

约 15 分钟
💻

跟练演示

老师边讲边敲代码,学生同步跟练,看懂不等于会写

约 30 分钟
🔧

自主挑战

独立完成课堂小任务,遇到 Bug 先自己 debug,再问同学或老师

约 30 分钟
📢

分享展示

随机抽 2-3 位同学展示成果,讲思路、讲踩坑,全班一起 review

约 15 分钟

学完这 48 节你能做什么

🖥️ 编程能力

  • 独立写出 200+ 行有清晰结构的 Python 程序
  • 正确使用变量、条件、循环、函数等核心语法
  • 设计类和对象,用面向对象思维解决问题
  • 读写文件、处理 CSV/JSON 格式数据
  • 独立调试 Bug,看懂报错信息,不怕出错
  • 用 Turtle 绘制几何图形、分形艺术和动态动画

🧠 算法与竞赛

  • 理解并实现冒泡、选择、插入三种排序算法
  • 掌握线性查找和二分查找,初步分析时间复杂度
  • 理解递归思想,能解决经典递归问题
  • 了解栈、队列两种基础数据结构及其应用场景
  • 具备参加 CSP-J 入门组的基础能力
  • 学习路径可直接衔接信息学奥赛体系课程

48 节,从零到真正会编程

没有任何编程基础也能入学。完成本课程后,你的孩子将具备参加 CSP-J 信息学联赛的基础能力。

← 查看其他课程