恏奇笔记 Logo

恏奇笔记

跟着火柴人学Python

发布于

2025-03-03

Python

火柴人

Alan Becker是一位美国动画师、YouTuber和艺术家,以Animator vs. Animation系列动画而闻名,作品流畅、细腻,展现了他在动画制作方面的才华。

Alan Becker的作品充满创意,他擅长将简单的火柴人动画与复杂的计算机桌面环境相结合,创造出独特的视觉效果。

最近,火柴人 vs. 编程视频火了:

外行看热闹,内行看门道。

这个视频中不仅分享了作者的Python学习路径,更有隐藏的知识点可以评估自己的Python水平,让我细细道来。

基础语法

小黄人醒过来之后,在Python交互环境中尝试打招呼,居然遭到了电击!

hello

🤔 为什么会报错?

琢磨一阵子后,小黄人不仅学会了输出字符,还学会了变量保存数字和文本。

但是,由于学习过程中多次报错,笔记本不乐意了,开始教小黄人做人,一通怼脸输出:

a = "string"
for i in a:
    print(i)

逃跑路中用循环来表示狗吠:

a = "bark"
while True:
    print(a)

为了阻止笔记本的进攻,小黄人修改了语句,但是又遭遇电击:

a = "bark"
while a.isdigit():
print(a.upper())

🤔 为什么会报错?

经过努力,小黄人终于修改控制条件,让笔记本停止攻击,没想到笔记本用了else语句完成绝杀:

a = "RRRAAAAAAAAAAAAAA"
while not a.isprintable():
    print(a.upper())
else:
    print(a)

龟叔最后悔的设计被拿出来拍视频,Alan你是不是故意的 🤭

海龟几何

当小黄人飞扑过去的时候,笔记本突然又祭出海龟来向小黄人进攻:

import turtle
t = turtle.Turtle()
t.speed("fast")
t.left(135)
t.forward(1280)

这个笔记本,几何学得还蛮好的咧!

这也是我们计算思维几何篇为什么教海龟的原因嘛!

笔记本通过循环来制造齿轮来追杀,一边跑一变把大写字母做成子弹射击:

import string as ammo
gun = list(ammo.ascii_uppercase)
print(gun.pop())

🤔 为什么是Z、Y、X一直到A的顺序?

在玉石俱焚前的一瞬间,小黄人终于关闭掉了追杀的海龟!

数据科学

笔记本仍然不依不饶,通过巨石阵困住了小黄。用到的技术,就是数据科学中的numpy和matplotlib。

战斗中,笔记本甚至学会了用散弹枪来攻击:

def fire(n, c=1):
    if c > n:
        return
    print(' ' * (c - 1) + '*' * (2 * (n - c) + 1))
    fire(n, c + 1)

🤔 散弹用到什么编程技巧?

游戏开发

PyGame是用Python开发游戏的库,我研究就比较少,就不解说了。

战斗中,笔记本制造出了加特林:

def fire(n, c=1):
    if c > len(n):
        return
    print([ch for ch in n])
    fire(n, c + 1)
fire(string.digits)

🤔 加特林用到什么编程技巧?

笔记本又制造出了核武器!

def nuke(n):
    a = []
    for i in range(10):
        if n > 1:
            a.append(nuke(n - 1))
        else:
            a.append(i)
    return a
print(nuke(10))

🤔 为什么这个是个核武器?

神经网络

很可惜,笔记本没有在核爆炸中幸存。

小黄人伤心之余,灵机一动,用PyTorch写的人工神经网络,实现了一个大语言模型。

模型训练完成之后,笔记本终于在虚拟世界里面作为人工智能,又活过来了……

🤔 笔记本知道自己是虚拟的吗?

🤔 小黄人知道自己是虚拟的吗?

😛 你知道自己不是虚拟的吗?

学习规划

这个视频展示了Python的学习路径:

  • 学习基本语法。
  • 学习几何海龟。
  • 学习数据科学。
  • 偶尔编写游戏。
  • 学习人工智能。

Alan Becker无疑是个Python高手,不但制作了这个有趣的视频,还分享了他的Python学习路线,希望对学生的成长有所启发!

目录