面向小小白 · 零基础 · 一次学会

🐍 Python 小白起飞手册

不背概念、不灌术语。跟着做,每一步都能在自己电脑上跑出结果。

预计总用时:认真跟着敲,约 3~4 小时入门。

📑 目录
  1. 第一步:把 Python 装进电脑(5 分钟)
  2. 第二步:写下人生第一行代码
  3. 第三步:变量 —— 给东西贴标签
  4. 第四步:和电脑对话(输入与输出)
  5. 第五步:让电脑做选择(if 判断)
  6. 第六步:让电脑重复干活(循环)
  7. 第七步:装东西的容器(列表与字典)
  8. 第八步:把代码打包(函数)
  9. 实战项目:猜数字游戏 + 小账本
  10. 报错了怎么办?(必看的自救指南)
  11. 学完之后去哪儿?

STEP 1把 Python 装进电脑(5 分钟)

Python 是一个「程序」,要先装到电脑上,电脑才认识它。

Windows 用户(大多数人)

1️⃣ 打开官网下载页:python.org/downloads,点黄色大按钮下载。

2️⃣ 双击安装包。最重要的一步来了:

⚠️ 千万别漏掉安装第一屏最下面有个 "Add Python to PATH" 的勾选框,一定要勾上!不勾的话,后面命令会找不到 Python,是新手第一大坑。

3️⃣ 一路点 Install Now,等它跑完。

4️⃣ 验证:按 Win + R,输入 cmd 回车,打开黑色窗口,输入:

python --version

Python 3.13.1

✔ 只要能显示版本号,就装好了!

Mac 用户

Mac 自带一个旧版 Python,建议还是去官网装新版。下载 macOS 64-bit installer,双击一路下一步即可。验证方式:打开「终端」(Terminal),同样输入 python3 --version

💡 给你选个趁手的编辑器 装好 Python 后,别用记事本写代码。推荐 VS Code(免费、最主流)或者 PyCharm 社区版(对新手更友好,开箱即用)。本教程两种都行,跟着敲就好。

STEP 2写下人生第一行代码

先建立两个认知,后面不迷路:

两种用法是什么类比
交互模式在黑窗口里输入一行,立刻出结果像聊天,说完就忘
脚本模式把代码写进 .py 文件,一次运行像写作文,能保存反复用

咱两样都试一下。

① 交互模式:先随便聊聊

打开 cmd(Mac 开终端),输入 python 回车,会看到 >>> 符号——这是 Python 在说「你说,我听着呢」。

>>> print("你好,世界")
>>> 1 + 1

你好,世界 2

注意到没?1 + 1 连 print 都不用写,它直接把答案甩给你。这个窗口就是你的「计算器+草稿纸」。

输入 exit() 可以退出这个模式。

② 脚本模式:写第一个程序文件

打开 VS Code → 新建文件 → 保存为 hello.py(后缀必须是 .py),输入:

# 我的第一个程序
print("大家好,我是未来的程序员!")
print("今天是我学 Python 的第 1 天")

然后在文件所在文件夹打开终端(Windows 用户:在文件夹地址栏输入 cmd 回车,超好用),运行:

python hello.py

大家好,我是未来的程序员! 今天是我学 Python 的第 1 天

⚠️ 新手必踩坑 ① 代码里的引号、括号必须用英文的(" 而不是 “),中文标点是报错大户。 ② Python 区分大小写Printprint 是两个东西,只有小写的 print 才有效。

STEP 3变量 —— 给东西贴标签

变量就是一个「贴了名字的盒子」,把数据放进去,以后凭名字取用。

name = "小明"      # 字符串:一段文字,要加引号
age = 12           # 整数:不带小数点的数
height = 1.55      # 浮点数:带小数点的数
is_student = True  # 布尔值:只有 True / False 两种

print(name, age, height, is_student)

小明 12 1.55 True

盒子里的东西可以换(所以叫「变」量):

score = 60
print(score)
score = 95        # 旧值 60 被覆盖,从此 score 是 95
print(score)

60 95

💡 起名规矩(就 3 条) ① 只能用字母、数字、下划线,且不能以数字开头(2name ❌,name2 ✔)。 ② 不能用 Python 的保留词做名字(如 ifprintfor)。 ③ 建议起「见名知意」的名字:pricea 强一万倍。

数据之间可以互相转换

age_text = "12"          # 这是文字,不能拿来做加法
age_num = int(age_text)  # 转成整数
print(age_num + 1)

print("我今年 " + str(12) + " 岁")  # 数字要 str() 转成文字才能和文字拼接

13 我今年 12 岁

STEP 4和电脑对话(输入与输出)

程序最基本的能力:听你说话(input),回答你(print)。

name = input("你叫什么名字?")
print("你好呀," + name + "!")

你叫什么名字?小红 你好呀,小红!

⚠️ 超级大坑:input 拿到的一切都是文字 就算你输入 100,它拿到的也是文字 "100"。要做数学计算,必须先用 int() 转换:
birth_year = input("你哪年出生?")
age = 2026 - int(birth_year)   # 必须转 int,否则文字没法做减法
print("你今年", age, "岁")

f-string:拼字符串最优雅的写法(记住它!)

引号前面加个 f,变量直接用 {} 包起来塞进文字里,不用再手拼加号:

name = "小明"
age = 12
print(f"{name} 今年 {age} 岁,明年 {age + 1} 岁")

小明 今年 12 岁,明年 13 岁

顺便:age + 1 放在 f-string 里也能直接算,很爽。

STEP 5让电脑做选择(if 判断)

程序聪明与否,就看它会不会「看情况办事」。if 就是「如果…就…」:

score = int(input("你的分数:"))

if score >= 90:
    print("太棒了!🎉")
elif score >= 60:
    print("及格啦,继续加油")
else:
    print("下次一定行!")
⚠️ Python 最独特的规矩:缩进 if 下面的代码要往右缩进一格(VS Code 里按 Tab 自动搞定)。缩进相同的代码属于同一组。 Python 靠缩进来理解「哪些代码归 if 管」,缩错了程序直接报错或逻辑错乱。这是新手第二大坑。

常用的比较符号

符号意思例子
==等于(注意是两个等号!一个等号是赋值)age == 18
!=不等于answer != "y"
>   <大于 / 小于score > 60
>=   <=大于等于 / 小于等于price <= 100
and并且(两个条件都满足)age > 6 and age < 12
or或者(满足一个就行)day == "六" or day == "日"
not反过来not is_raining
💡 一个等号 vs 两个等号 age = 18 是「把 18 放进 age 盒子」(赋值);age == 18 是「问问 age 是不是 18」(比较)。打错这两个,程序就抽风,但很多时候不报错,极难排查——从第一天就养成习惯。

STEP 6让电脑重复干活(循环)

电脑最强的地方是不知疲倦。让它重复 100 遍?一句话的事。

for 循环:知道要重复几次时用

for i in range(5):
    print(f"这是第 {i + 1} 遍")

这是第 1 遍 这是第 2 遍 这是第 3 遍 这是第 4 遍 这是第 5 遍

注意:range(5) 是从 0 数到 4,一共 5 个数,不含 5。程序世界从 0 开始数数,习惯就好。

while 循环:不知道几次,满足条件就一直转

count = 3
while count > 0:
    print(f"倒计时:{count}")
    count = count - 1
print("发射!🚀")

倒计时:3 倒计时:2 倒计时:1 发射!🚀

⚠️ 死循环警告 while 的条件永远为真时,程序会永远转下去(风扇狂转的那种)。写 while 时先想清楚:什么时刻条件会变成 False?想不出来就别按回车。

两个循环小开关

for i in range(1, 6):
    if i == 3:
        continue   # 跳过 3,直接下一轮
    if i == 5:
        break      # 到 5 直接整个循环结束
    print(i)

1 2 4

STEP 7装东西的容器(列表与字典)

列表 list:一排盒子排好队

fruits = ["苹果", "香蕉", "橘子"]

print(fruits[0])      # 取第 1 个(从 0 开始!)
print(fruits[-1])     # -1 表示最后一个,超好用

fruits.append("西瓜")  # 往末尾加一个
fruits[0] = "草莓"     # 改第 1 个
print(fruits)
print(len(fruits))    # 数一下有几个

苹果 橘子 ['草莓', '香蕉', '橘子', '西瓜'] 4

遍历列表:for 和列表是绝配

for fruit in fruits:
    print(f"我喜欢吃 {fruit}")

字典 dict:按「名字」取东西的柜子

列表靠位置(0、1、2…)取东西,字典靠标签(key)取,更适合描述一个「对象」:

student = {
    "name": "小明",
    "age": 12,
    "hobby": "打游戏",
}

print(student["name"])         # 用标签取值
student["age"] = 13            # 改
student["grade"] = "初一"      # 加新标签
print(student)

小明 {'name': '小明', 'age': 13, 'hobby': '打游戏', 'grade': '初一'}

💡 什么时候用哪个? 一堆同类的东西(购物车、名单)→ 列表。 描述一个东西的各种属性(一个人、一件商品)→ 字典。 两者还能嵌套:列表里装字典,就是「一群人的档案」,真实项目里天天用。

STEP 8把代码打包(函数)

同一段代码要写很多遍?包成一个函数,起个名,以后喊名字就能用。

def greet(name):              # def 定义函数,name 是参数
    print(f"你好,{name}!")
    print("欢迎来到 Python 世界")

greet("小明")                  # 调用:喊名字,把数据传进去
greet("小红")

会「回报结果」的函数:return

print 只是「喊出来给人听」,return 是「把结果交回给程序接着用」——这是新手最容易混的一点:

def add(a, b):
    return a + b     # 把结果交出去

result = add(3, 5)   # 接住结果
print(result * 2)    # 结果还能继续用

16

💡 为什么要用函数? ① 同样的逻辑写一次到处用;② 代码有了名字,看代码像读句子;③ 出了问题只改一处。以后写超过 50 行的程序,就该想着「这段能不能提成函数」。

STEP 9实战项目:猜数字游戏 + 小账本

前面学的所有东西,在这两个小项目里全部用到。别复制——自己敲一遍,敲错再修,这才是真学习。

🎮 项目一:猜数字游戏

用到:import、while、if、input、int

新建 guess.py

import random   # Python 自带的"随机数工具箱"

answer = random.randint(1, 100)   # 1~100 之间随机出一个数
count = 0

print("我想好了一个 1~100 的数字,猜猜看!")

while True:
    guess = int(input("你猜:"))
    count = count + 1

    if guess > answer:
        print("大了,往小猜 👇")
    elif guess < answer:
        print("小了,往大猜 👆")
    else:
        print(f"猜对了!答案是 {answer},你用了 {count} 次 🎉")
        break

运行 python guess.py,玩几把。玩通关后试着改造它:只允许猜 7 次,超了就失败——改造成功说明你真的懂了。

💰 项目二:小账本(能存进文件的)

用到:while、字典、列表、文件读写、函数

新建 ledger.py

import json   # 用来把数据存成文件的工具

RECORD_FILE = "ledger.json"

def load_records():
    # 启动时把之前记的账读回来
    try:
        with open(RECORD_FILE, "r", encoding="utf-8") as f:
            return json.load(f)
    except FileNotFoundError:
        return []   # 第一次用还没有文件,返回空列表

def save_records(records):
    with open(RECORD_FILE, "w", encoding="utf-8") as f:
        json.dump(records, f, ensure_ascii=False, indent=2)

records = load_records()

while True:
    print("\n===== 小账本 =====")
    print("1. 记一笔  2. 查看全部  3. 算总账  4. 退出")
    choice = input("选个功能:")

    if choice == "1":
        what = input("买了啥:")
        how_much = float(input("花了多少钱:"))
        records.append({"item": what, "money": how_much})
        save_records(records)
        print("记好啦 ✔")

    elif choice == "2":
        if len(records) == 0:
            print("还没有账目哦")
        for i, r in enumerate(records, start=1):
            print(f"{i}. {r['item']}:{r['money']} 元")

    elif choice == "3":
        total = 0
        for r in records:
            total = total + r["money"]
        print(f"总共花了 {total} 元")

    elif choice == "4":
        print("bye~ 记得省钱")
        break

    else:
        print("看清楚再选哦(输入 1/2/3/4)")

跑起来记几笔账,关掉重开——账还在!因为它学会了「用文件记住数据」。这时候你就已经会写一个真正有用的小软件了。

STEP 10报错了怎么办?(必看的自救指南)

先说结论:报错不是失败,是 Python 在跟你说话。老手每天看几十个报错。你要学会的是「读懂它」。

看报错的姿势:翻到最后一行

报错信息一大坨,重点永远是最后一行。常见的是这几个:

报错人话怎么修
SyntaxError语法写错了检查是不是漏了冒号 :、引号、括号
IndentationError缩进不对统一用 Tab 或 4 空格,别混着来
NameError用了不存在的变量检查拼写(十有八九是打错字了)
TypeError类型用错了典型:"1" + 1,文字不能加数字,转 int/str
ValueError值不对典型:int("abc"),abc 转不成数字
IndexError取的位置不存在列表只有 3 个元素却取 [3],检查下标
KeyError字典里没这个标签检查 key 拼写

自救三连

1️⃣ 读最后一行报错 → 对照上表定位问题。

2️⃣ print 大法 → 在可疑的地方打印变量的值,看看和你以为的是不是一样:

print(f"DEBUG: 此刻 guess = {guess}, 类型是 {type(guess)}")

3️⃣ 缩小范围 → 把代码砍到最小,只留出错的那一小段单独跑,问题会自己现形。

💡 终极心法 报错信息直接复制去搜(或丢给 AI 助手),90% 的问题别人都踩过。但你得先自己读一遍——练一年后,你瞄一眼就知道错哪儿了。

STEP 11学完之后去哪儿?

你想做什么下一步学什么
写小工具、自动化办公(批量改文件、处理 Excel)标准库:ospathlibopenpyxl
做网站 / 网页后端Flask(简单)或 FastAPI(现代)
做数据图表、分析pandas + matplotlib
玩 AI先学好 pandas/numpy,再碰 PyTorch
写小游戏pygame

给小白的三条真心话

💪 敲,别抄。看教程觉得「懂了」是错觉,手敲出来才算数。错一次,记住一次。

🎯 做小东西,别刷完教程。学完本篇就可以做:记账本、密码生成器、批量重命名文件工具、每日一句英语提醒……从自己真的会用的东西开始。

🐢 每天 30 分钟 > 周末狂肝 5 小时。编程是肌肉记忆,细水长流才留得住。