不背概念、不灌术语。跟着做,每一步都能在自己电脑上跑出结果。
预计总用时:认真跟着敲,约 3~4 小时入门。
Python 是一个「程序」,要先装到电脑上,电脑才认识它。
1️⃣ 打开官网下载页:python.org/downloads,点黄色大按钮下载。
2️⃣ 双击安装包。最重要的一步来了:
3️⃣ 一路点 Install Now,等它跑完。
4️⃣ 验证:按 Win + R,输入 cmd 回车,打开黑色窗口,输入:
python --version
Python 3.13.1
✔ 只要能显示版本号,就装好了!
Mac 自带一个旧版 Python,建议还是去官网装新版。下载 macOS 64-bit installer,双击一路下一步即可。验证方式:打开「终端」(Terminal),同样输入 python3 --version。
先建立两个认知,后面不迷路:
| 两种用法 | 是什么 | 类比 |
|---|---|---|
| 交互模式 | 在黑窗口里输入一行,立刻出结果 | 像聊天,说完就忘 |
| 脚本模式 | 把代码写进 .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 天
Print 和 print 是两个东西,只有小写的 print 才有效。
变量就是一个「贴了名字的盒子」,把数据放进去,以后凭名字取用。
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
2name ❌,name2 ✔)。
② 不能用 Python 的保留词做名字(如 if、print、for)。
③ 建议起「见名知意」的名字:price 比 a 强一万倍。
age_text = "12" # 这是文字,不能拿来做加法
age_num = int(age_text) # 转成整数
print(age_num + 1)
print("我今年 " + str(12) + " 岁") # 数字要 str() 转成文字才能和文字拼接
13 我今年 12 岁
程序最基本的能力:听你说话(input),回答你(print)。
name = input("你叫什么名字?")
print("你好呀," + name + "!")
你叫什么名字?小红 你好呀,小红!
int() 转换:
birth_year = input("你哪年出生?")
age = 2026 - int(birth_year) # 必须转 int,否则文字没法做减法
print("你今年", age, "岁")
引号前面加个 f,变量直接用 {} 包起来塞进文字里,不用再手拼加号:
name = "小明"
age = 12
print(f"{name} 今年 {age} 岁,明年 {age + 1} 岁")
小明 今年 12 岁,明年 13 岁
顺便:age + 1 放在 f-string 里也能直接算,很爽。
程序聪明与否,就看它会不会「看情况办事」。if 就是「如果…就…」:
score = int(input("你的分数:"))
if score >= 90:
print("太棒了!🎉")
elif score >= 60:
print("及格啦,继续加油")
else:
print("下次一定行!")
| 符号 | 意思 | 例子 |
|---|---|---|
| == | 等于(注意是两个等号!一个等号是赋值) | age == 18 |
| != | 不等于 | answer != "y" |
| > < | 大于 / 小于 | score > 60 |
| >= <= | 大于等于 / 小于等于 | price <= 100 |
| and | 并且(两个条件都满足) | age > 6 and age < 12 |
| or | 或者(满足一个就行) | day == "六" or day == "日" |
| not | 反过来 | not is_raining |
age = 18 是「把 18 放进 age 盒子」(赋值);age == 18 是「问问 age 是不是 18」(比较)。打错这两个,程序就抽风,但很多时候不报错,极难排查——从第一天就养成习惯。
电脑最强的地方是不知疲倦。让它重复 100 遍?一句话的事。
for i in range(5):
print(f"这是第 {i + 1} 遍")
这是第 1 遍 这是第 2 遍 这是第 3 遍 这是第 4 遍 这是第 5 遍
注意:range(5) 是从 0 数到 4,一共 5 个数,不含 5。程序世界从 0 开始数数,习惯就好。
count = 3
while count > 0:
print(f"倒计时:{count}")
count = count - 1
print("发射!🚀")
倒计时:3 倒计时:2 倒计时:1 发射!🚀
for i in range(1, 6):
if i == 3:
continue # 跳过 3,直接下一轮
if i == 5:
break # 到 5 直接整个循环结束
print(i)
1 2 4
fruits = ["苹果", "香蕉", "橘子"]
print(fruits[0]) # 取第 1 个(从 0 开始!)
print(fruits[-1]) # -1 表示最后一个,超好用
fruits.append("西瓜") # 往末尾加一个
fruits[0] = "草莓" # 改第 1 个
print(fruits)
print(len(fruits)) # 数一下有几个
苹果 橘子 ['草莓', '香蕉', '橘子', '西瓜'] 4
for fruit in fruits:
print(f"我喜欢吃 {fruit}")
列表靠位置(0、1、2…)取东西,字典靠标签(key)取,更适合描述一个「对象」:
student = {
"name": "小明",
"age": 12,
"hobby": "打游戏",
}
print(student["name"]) # 用标签取值
student["age"] = 13 # 改
student["grade"] = "初一" # 加新标签
print(student)
小明 {'name': '小明', 'age': 13, 'hobby': '打游戏', 'grade': '初一'}
同一段代码要写很多遍?包成一个函数,起个名,以后喊名字就能用。
def greet(name): # def 定义函数,name 是参数
print(f"你好,{name}!")
print("欢迎来到 Python 世界")
greet("小明") # 调用:喊名字,把数据传进去
greet("小红")
print 只是「喊出来给人听」,return 是「把结果交回给程序接着用」——这是新手最容易混的一点:
def add(a, b):
return a + b # 把结果交出去
result = add(3, 5) # 接住结果
print(result * 2) # 结果还能继续用
16
前面学的所有东西,在这两个小项目里全部用到。别复制——自己敲一遍,敲错再修,这才是真学习。
用到: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)")
跑起来记几笔账,关掉重开——账还在!因为它学会了「用文件记住数据」。这时候你就已经会写一个真正有用的小软件了。
先说结论:报错不是失败,是 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️⃣ 缩小范围 → 把代码砍到最小,只留出错的那一小段单独跑,问题会自己现形。
| 你想做什么 | 下一步学什么 |
|---|---|
| 写小工具、自动化办公(批量改文件、处理 Excel) | 标准库:os、pathlib、openpyxl |
| 做网站 / 网页后端 | Flask(简单)或 FastAPI(现代) |
| 做数据图表、分析 | pandas + matplotlib |
| 玩 AI | 先学好 pandas/numpy,再碰 PyTorch |
| 写小游戏 | pygame |
💪 敲,别抄。看教程觉得「懂了」是错觉,手敲出来才算数。错一次,记住一次。
🎯 做小东西,别刷完教程。学完本篇就可以做:记账本、密码生成器、批量重命名文件工具、每日一句英语提醒……从自己真的会用的东西开始。
🐢 每天 30 分钟 > 周末狂肝 5 小时。编程是肌肉记忆,细水长流才留得住。