① Motivation —— 为什么学这个?
上一章我们让 Python 打了声招呼。但一个只会说「Hello, world!」的程序就像只会说「你好」的机器人——有点无聊。
真正有用的程序会做三件事:存储信息、处理信息、输出结果。比如:记住你的名字,计算你的年龄,打印一张漂亮的个人档案。
本章我们学三个工具,让程序从一个「复读机」变成一个「信息处理器」:
- print() —— 不只是输出固定文字,还能拼接变量
- 变量 —— 给数据贴标签,让程序有「记忆力」
- 注释 —— 写给人类看的笔记,Python 会忽略它们
② Core Concept —— 核心概念
print() 是程序的嘴巴:它可以把任何东西输出到屏幕上。可以一次输出多个东西(用逗号分隔),也可以用 end 参数控制结尾字符。
变量 = 贴了标签的盒子:name = "小明" 的意思是:找一个盒子,把 "小明" 放进去,然后在盒子上贴一张标签叫 name。以后你写 name,Python 就知道你要拿那个盒子里的东西。
注释是代码的备忘录:# 开头的内容,Python 会完全忽略。它是写给未来的你(或你的队友)看的。
③ Live Code —— 可运行的代码
3.1 print() 的多种用法
# 运行方式:python 02_print_demo.py
# 基本用法:输出一段文字
print("你好,世界!")
# 输出多个东西(用逗号分隔,自动加空格)
print("我的名字是", "小明", ",今年", 12, "岁")
# 自定义结尾字符(默认是换行符 \\n)
print("第一句", end=" → ")
print("第二句") # 输出:第一句 → 第二句
# 输出空行(什么都不传)
print()
print("上面有一个空行")
逐行解读:
- 第 2 行:# 开头的是注释,Python 不执行
- 第 5 行:最基本的 print(),输出一个字符串
- 第 8 行:用逗号分隔多个参数,print() 自动在中间加空格
- 第 11 行:end=" → " 把默认的换行符替换成了箭头,所以下一个 print() 不会换行
- 第 15 行:空 print() 只输出一个换行
3.2 变量的诞生与使用
# 运行方式:python 02_variables_demo.py
# 创建变量:贴上标签
name = "小明" # 字符串(文字)
age = 12 # 整数
height = 1.55 # 浮点数(带小数点的数字)
is_student = True # 布尔值(True 或 False)
# 使用变量:通过标签取出数据
print("姓名:", name)
print("年龄:", age)
print("身高:", height, "米")
print("是否学生:", is_student)
# 变量可以重新赋值(标签可以换到别的盒子上)
age = 13 # 过了一年,年龄变了
print("一年后,年龄:", age)
# 变量之间可以运算
birth_year = 2025 – age
print("出生年份大约是:", birth_year)
逐行解读:
- 第 4-7 行:用 = 把值赋给变量。= 不是「等于」,是「赋值」——把右边的值放进左边的标签盒子
- 第 10-13 行:print() 里混用字符串和变量
- 第 16-17 行:变量可以重新赋值。新的值覆盖旧的
- 第 20-21 行:变量可以参与计算
3.3 注释的艺术
# 运行方式:python 02_comments_demo.py
# 1. 单行注释:解释「为什么这么做」,而不是「做了什么」
# 下面这个公式把华氏度转为摄氏度
celsius = (98.6 – 32) * 5 / 9 # 华氏 98.6°F = 摄氏 37°C
# 2. 多行注释:用三个引号(实际上是多行字符串,Python 会读取但不赋值给任何变量就丢弃)
"""
这是一个自我介绍生成器的原型。
作者:Python 学习者
日期:2025年
功能:收集用户信息并生成一段自我介绍
"""
# 3. 注释也可以用来「暂时禁用」某行代码
print("这一行会执行")
# print("这一行暂时不执行")
④ Drills —— 练习
练习 1:填空(基础)
# 补全代码,让输出为:「我叫小明,今年 12 岁,最喜欢的数字是 7」
name = "小明"
age = ____
favorite_number = ____
print("我叫", ____, ",今年", ____, "岁,最喜欢的数字是", ____)
练习 2:改错(进阶)
# 下面的代码有 4 个错误,找到并修复它们
# 运行方式:python 02_fix_me.py
name = 小明 # 错误 1
age = 12
print("我叫" + name) # 错误 2(这行能跑但结果不是你想要的——为什么?)
print("明年我" age + 1 岁) # 错误 3 和 4
练习 3:自己写(挑战)
# 请写一个程序,完成以下任务:
# 1. 创建 3 个变量:你的名字、你所在的城市、你最喜欢的食物
# 2. 用 print() 输出一段完整的自我介绍,包含上面的 3 个信息
# 3. 让程序也输出这句话:「10 年后,我 35 岁」(用变量计算年龄,不要直接写 35)
⑤ Gotchas —— 常见陷阱
陷阱 1:字符串必须加引号,变量名不能加引号
# ❌ 错误写法
name = 小明
# Python 以为「小明」是一个变量名,但你没定义过它
# ✅ 正确写法
name = "小明" # 字符串加引号
# ❌ 错误写法
print("name")
# 输出「name」这个文字本身,而不是变量的值
# ✅ 正确写法
print(name)
# 输出变量的值「小明」
陷阱 2:print() 里的逗号会自动加空格
# 这点经常让人困惑:
print("答案是", 42)
# 输出:答案是 42 (中间自动加了空格)
# 如果你不想要空格,用字符串拼接(第 4 章会深入讲):
print("答案是" + str(42))
# 输出:答案是42 (没有空格)
陷阱 3:变量名不能以数字开头
# ❌ 错误
1st_place = "冠军" # SyntaxError
my–variable = 10 # SyntaxError(减号会被当作减法)
# ✅ 正确
first_place = "冠军"
my_variable = 10 # 用下划线代替连字符
陷阱 4:注释掉太多
# ❌ 容易犯的错:注释掉了不该注释的
name = "小明"
# age = 12
print(name, "今年", age, "岁")
# NameError: name 'age' is not defined
# 因为 age 的定义被注释掉了!
⑥ Mini-Project —— 自我介绍生成器
项目:自我介绍生成器
需求描述:写一个程序,输出一份格式化的个人简介。内容包含姓名、年龄、城市、爱好,并且计算出生年份。
完整代码:
# self_intro.py
# 运行方式:python self_intro.py
"""
自我介绍生成器
输入:在代码中直接修改变量值
输出:格式化的个人简介
"""
# ========== 个人信息(修改这里) ==========
name = "小明"
age = 12
city = "北京"
hobby = "打篮球"
favorite_food = "饺子"
# ==========================================
# 计算
birth_year = 2025 – age
# 输出名片
print("╔══════════════════════════╗")
print("║ 🌟 个人简介 🌟 ║")
print("╠══════════════════════════╣")
print("║ 姓名:", name, " " * (14 – len(name)), "║")
print("║ 年龄:", age, "岁", " " * (11 – len(str(age))), "║")
print("║ 城市:", city, " " * (14 – len(city)), "║")
print("║ 爱好:", hobby, " " * (14 – len(hobby)), "║")
print("║ 美食:", favorite_food, " " * (14 – len(favorite_food)), "║")
print("╠══════════════════════════╣")
print("║ 出生年份:约", birth_year, "年", " " * (6 – len(str(birth_year))), "║")
print("╚══════════════════════════╝")
提示:代码里出现了一些还没讲的运算符(* 用于字符串重复、- 用于数字减法),试着猜猜它们的作用。别担心完全理解——第 4 章会详细讲。
思路引导
⑦ Checkpoint —— 自检清单
能回答这 3 个问题,就可以继续。
🏃 快车道
有其他语言基础?
- Python 变量不需要声明类型:name = "小明" 就够了,不用 string name = "小明"
- 没有 const / let / var 的区别——一个 = 走天下
- # 是单行注释,没有原生的多行注释语法(""" """ 是字符串,但习惯上用来做多行注释)
- print() 自动换行,end 参数可以改结尾字符




