第3课:计算机的"小本本"——神奇的变量
🎯 本课目标
- 理解什么是变量,为什么需要变量
- 掌握变量的创建、赋值和修改
- 学习不同的数据类型
- 能用变量存储和计算信息
- 制作个人信息管理系统
📒 趣味引入:为什么需要"小本本"?
小实验:请你记住这些信息:
- 你的名字
- 年龄
- 生日
- 最喜欢的颜色
- 今天的日期
现在,回答问题:你明年几岁?下个月是什么季节?
你会发现:人脑能记住信息,但要让计算机记住信息,我们需要给它一个"小本本"——这就是变量!
变量就像贴了标签的盒子:
- 标签是变量名
- 盒子里是存储的值
- 盒子上写着里面是什么类型的东西
🎁 变量的基本概念
什么是变量?
变量是计算机存储信息的地方,就像一个个小盒子。
# 创建变量的语法:
变量名 = 值
示例:创建个人信息变量
# 创建存储个人信息的变量
name = "小明" # 名字盒子
age = 10 # 年龄盒子
height = 1.45 # 身高盒子
is_student = True # 学生身份盒子
school = "阳光小学" # 学校盒子
运行一下:创建这些变量,看看会发生什么?
神奇的事情:看起来什么都没发生?其实计算机已经把信息记住了!让我们看看盒子里有什么:
# 查看盒子里的内容
print(name) # 输出:小明
print(age) # 输出:10
print(height) # 输出:1.45
print(is_student) # 输出:True
print(school) # 输出:阳光小学
🏷️ 变量的命名规则
规则口诀:
字母下划线开头,数字可以跟在后
大小写要区分,关键字不能用
见名知意最重要,中文拼音也可以
✅ 正确的命名:
name = "小明" # 简单明了
student_name = "小红" # 用下划线分隔
_age = 10 # 下划线开头
num1 = 5 # 字母开头,数字结尾
姓名 = "小华" # 中文也可以!(但建议用英文)
❌ 错误的命名:
1name = "小明" # 不能以数字开头
my-name = "小红" # 不能用横杠
class = "五年级" # class是关键字
$money = 100 # 不能用特殊符号
Python关键字(不能用作变量名)
# 这些都是Python的"保留字",不能用作变量名
False None True and as assert
break class continue def del
elif else except finally for
from global if import in
is lambda nonlocal not or
pass raise return try while
with yield
简单记:在编辑器中变成不同颜色的单词,就不要用它作变量名。
📦 数据类型:盒子里能放什么?
计算机需要知道盒子里放的是什么类型的东西,这样才知道怎么使用它。
四种基本数据类型:
| 类型 | 名称 | 示例 | 用途 |
|------|------|------|------|
| int | 整数 | 10, -5, 0 | 计数、编号 |
| float | 浮点数 | 3.14, 2.5, -0.5 | 测量、计算 |
| str | 字符串 | "你好", "Python" | 文字信息 |
| bool | 布尔值 | True, False | 判断真假 |
示例:不同类型的数据
# 整数 - 用来计数
apples = 5 # 5个苹果
friends = 3 # 3个朋友
days = 365 # 一年365天
# 浮点数 - 用来精确测量
height = 1.45 # 身高1.45米
weight = 35.5 # 体重35.5千克
temperature = 23.5 # 温度23.5度
# 字符串 - 用来存文字
name = "小明" # 名字
color = "蓝色" # 颜色
hobby = "编程和足球" # 爱好
# 布尔值 - 用来判断
is_sunny = True # 是晴天
has_homework = False # 没有作业
is_weekend = False # 不是周末
查看数据类型
# 用type()函数查看类型
print(type(10)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("你好")) # <class 'str'>
print(type(True)) # <class 'bool'>
# 查看变量的类型
age = 10
name = "小明"
print(type(age)) # <class 'int'>
print(type(name)) # <class 'str'>
🔄 变量操作三部曲
第一步:创建变量(放东西进盒子)
# 创建新变量
pencil_case = "蓝色铅笔盒" # 创建变量,放入"蓝色铅笔盒"
pencil_count = 3 # 创建变量,放入3
第二步:修改变量(换盒子里的东西)
# 修改变量的值
money = 100 # 初始有100元
print("早上有:", money, "元")
money = 100 - 20 # 花了20元买笔
print("买笔花了20元,还剩:", money, "元")
money = money + 50 # 妈妈给了50元
print("妈妈给了50元,现在有:", money, "元")
money = money * 2 # 压岁钱翻倍
print("压岁钱翻倍,变成:", money, "元")
运行结果:
早上有: 100 元
买笔花了20元,还剩: 80 元
妈妈给了50元,现在有: 130 元
压岁钱翻倍,变成: 260 元
第三步:使用变量(从盒子里拿东西)
# 使用变量进行计算
chinese_score = 92
math_score = 88
english_score = 95
# 计算总分
total_score = chinese_score + math_score + english_score
# 计算平均分
average_score = total_score / 3
print("语文:", chinese_score, "分")
print("数学:", math_score, "分")
print("英语:", english_score, "分")
print("总分:", total_score, "分")
print("平均分:", average_score, "分")
🎪 变量的神奇操作
操作1:同时创建多个变量
# 一行创建多个变量
name, age, school = "小明", 10, "阳光小学"
# 等价于:
name = "小明"
age = 10
school = "阳光小学"
操作2:交换两个变量的值
# 交换两个盒子的内容
apple = 5
orange = 3
print("交换前:苹果=", apple, ",橙子=", orange)
# 魔法交换!
apple, orange = orange, apple
print("交换后:苹果=", apple, ",橙子=", orange)
运行结果:
交换前:苹果= 5 ,橙子= 3
交换后:苹果= 3 ,橙子= 5
魔法揭秘:Python可以一行代码交换两个变量的值!
操作3:简便赋值运算
money = 100
print("零花钱:", money)
money += 20 # 相当于 money = money + 20
print("妈妈又给了20元:", money)
money -= 15 # 相当于 money = money - 15
print("买了零食花了15元:", money)
money *= 2 # 相当于 money = money * 2
print("爷爷给了同样多的钱,现在:", money)
简便运算符:
+=加法赋值-=减法赋值*=乘法赋值/=除法赋值
🧮 变量计算实践
实践1:计算长方形的面积和周长
# 定义长方形的长和宽
length = 8.5 # 长
width = 4.2 # 宽
# 计算面积和周长
area = length * width # 面积 = 长 × 宽
perimeter = 2 * (length + width) # 周长 = 2 × (长 + 宽)
# 输出结果
print("长方形计算器")
print("=" * 20)
print(f"长:{length} 厘米")
print(f"宽:{width} 厘米")
print(f"面积:{area} 平方厘米")
print(f"周长:{perimeter} 厘米")
实践2:购物计算器
# 商品价格
pencil_price = 2.5 # 铅笔单价
notebook_price = 5.0 # 笔记本单价
eraser_price = 1.0 # 橡皮单价
# 购买数量
pencil_count = 3
notebook_count = 2
eraser_count = 5
# 计算
pencil_total = pencil_price * pencil_count
notebook_total = notebook_price * notebook_count
eraser_total = eraser_price * eraser_count
total_price = pencil_total + notebook_total + eraser_total
# 输出小票
print("🛒 文具店购物小票")
print("=" * 30)
print(f"铅笔:{pencil_count}支 × ¥{pencil_price} = ¥{pencil_total}")
print(f"笔记本:{notebook_count}本 × ¥{notebook_price} = ¥{notebook_total}")
print(f"橡皮:{eraser_count}块 × ¥{eraser_price} = ¥{eraser_total}")
print("-" * 30)
print(f"总计:¥{total_price}")
print("=" * 30)
🔤 字符串操作
连接字符串
first_name = "小"
last_name = "明"
full_name = first_name + last_name
print("全名:", full_name) # 小明
# 连接字符串和数字
age = 10
# info = "我今年" + age + "岁" # ❌ 错误!
info = "我今年" + str(age) + "岁" # ✅ 正确
print(info)
字符串重复
# 打印分隔线
line = "-" * 30
print(line)
print("欢迎使用学生管理系统")
print(line)
# 打印图案
heart = "❤️"
print(heart * 3) # ❤️❤️❤️
print("开心" * 3) # 开心开心开心
格式化字符串
name = "小红"
age = 9
score = 96.5
# 方法1:f-string(推荐)
info1 = f"{name}今年{age}岁,考了{score}分"
print(info1)
# 方法2:用逗号分隔
print(name, "今年", age, "岁,考了", score, "分")
# 方法3:用加号连接
info2 = name + "今年" + str(age) + "岁,考了" + str(score) + "分"
print(info2)
运行结果:
小红今年9岁,考了96.5分
小红 今年 9 岁,考了 96.5 分
小红今年9岁,考了96.5分
📊 项目:个人信息管理系统
# 个人信息管理系统
print("📱" * 10)
print(" 个人信息管理系统 v1.0")
print("📱" * 10)
# 1. 输入个人信息
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
height = float(input("请输入你的身高(米):"))
weight = float(input("请输入你的体重(千克):"))
school = input("请输入你的学校:")
hobby = input("请输入你的爱好:")
# 2. 计算BMI指数
bmi = weight / (height * height)
# 3. 显示个人信息
print("\n" + "=" * 40)
print(" 个人信息卡片")
print("=" * 40)
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"身高:{height}米")
print(f"体重:{weight}千克")
print(f"BMI指数:{bmi:.1f}") # 保留1位小数
print(f"学校:{school}")
print(f"爱好:{hobby}")
# 4. 给出健康建议
print("\n" + "=" * 40)
print(" 健康建议")
print("=" * 40)
if bmi < 18.5:
print("你的BMI偏轻,要多吃有营养的食物哦!")
elif bmi < 24:
print("你的BMI正常,继续保持!")
else:
print("你的BMI偏重,要多运动,注意饮食!")
# 5. 年龄相关计算
next_year_age = age + 1
birth_year = 2023 - age
print(f"\n明年你就{next_year_age}岁了!")
print(f"你是{birth_year}年出生的。")
print("=" * 40)
🔧 数据类型转换
有时候我们需要在不同的类型之间转换:
# 字符串 → 数字
age_str = "10"
age_int = int(age_str) # 变成整数10
print(f"字符串'10'变成整数:{age_int}")
height_str = "1.45"
height_float = float(height_str) # 变成浮点数1.45
print(f"字符串'1.45'变成浮点数:{height_float}")
# 数字 → 字符串
age = 10
age_str = str(age) # 变成字符串"10"
print(f"整数10变成字符串:'{age_str}'")
# 整数 ↔ 浮点数
num_int = 5
num_float = float(num_int) # 5.0
print(f"整数5变成浮点数:{num_float}")
num_float = 3.8
num_int = int(num_float) # 3(注意:小数变整数会直接去掉小数部分)
print(f"浮点数3.8变成整数:{num_int}")
# 布尔值转换
print(f"bool(1) = {bool(1)}") # True
print(f"bool(0) = {bool(0)}") # False
print(f"bool('Hello') = {bool('Hello')}") # True
print(f"bool('') = {bool('')}") # False
🧩 调试练习:找出变量错误
练习1:找出错误
1name = "小明"
age = "10岁"
total = age + 5
print(total)
错误:
- 变量名不能以数字开头
- age是字符串"10岁",不能加数字5
- 需要提取数字部分并转换类型
改正:
first_name = "小明"
age = 10 # 或者 int("10")
total = age + 5
print(total)
练习2:生日计算器
name = input("姓名:")
birth_year = input("出生年份:")
age = 2023 - birth_year
print(age)
错误:input()得到的是字符串,需要转换成数字才能计算
改正:
name = input("姓名:")
birth_year = int(input("出生年份:"))
age = 2023 - birth_year
print(f"{name}今年{age}岁")
🎮 闯关游戏:变量大挑战
第一关:基础关
创建3个变量,分别存储你的姓名、年龄、爱好,并打印出来。
第二关:计算关
- 计算圆的面积(半径r=5,π≈3.14)
- 计算矩形的周长(长=8,宽=4)
- 计算三个数的平均数(87, 92, 78)
第三关:应用关
制作一个"零花钱管家"程序:
- 记录本周的零花钱(比如50元)
- 记录每天的支出
- 计算还剩多少钱
- 给出消费建议
📈 现实中的变量应用
发现生活中的变量:
| 生活场景 | 变量名 | 数据类型 | 示例值 |
|---------|-------|---------|-------|
| 天气预报 | temperature | float | 25.5 |
| 游戏得分 | score | int | 1000 |
| 通讯录 | phone_number | str | "13800138000" |
| 登录状态 | is_logged_in | bool | True |
| 购物车 | item_count | int | 3 |
| 电池电量 | battery_level | float | 85.5 |
| 时间 | current_hour | int | 14 |
你的任务:找出生活中3个可以用变量表示的事物,并写出Python代码。
📅 下节课预告
第4课:计算机的数学课——基本运算
下节课你将学习:
- 加减乘除、乘方、求余运算
- 运算的优先级
- 数学公式的Python写法
- 制作高级计算器
- 解决数学应用题
预习思考:
- Python中乘号、除号怎么写?
- 2的3次方在Python中怎么表示?
- 10 ÷ 3的余数怎么计算?
🎁 彩蛋:变量魔术
# 数学魔术
number = int(input("想一个1-10的数字,告诉我:"))
result = ((number * 2 + 8) / 2) - number
print(f"我猜结果一定是...{result}!")
# 字符串魔术
first = "编程"
second = "很有趣"
third = first + second
print(f"{first} + {second} = {third}")
# 类型转换魔术
magic_num = 123
print(f"数字{magic_num}变成字符串:'{str(magic_num)}'")
print(f"字符串'456'变成数字:{int('456')}")
🏆 本课成就墙
完成本课学习,你获得了:
🎓 【变量大师】:理解并会使用变量
🎓 【类型专家】:掌握4种基本数据类型
🎓 【命名高手】:能起有意义的变量名
🎓 【计算达人】:用变量完成各种计算
🎓 【项目能手】:完成个人信息系统
学习进度:
- ✅ 第1课:环境搭建
- ✅ 第2课:print()函数
- ✅ 第3课:变量
- ⏳ 第4课:基本运算
自我评价:
- 我能解释什么是变量:□ 完全理解 □ 基本理解 □ 还需练习
- 我能正确命名变量:□ 总是正确 □ 经常正确 □ 有时出错
- 我能区分数据类型:□ 完全掌握 □ 基本掌握 □ 还需学习
- 我能用变量计算:□ 熟练应用 □ 基本应用 □ 初步尝试
🌟 编程心法
变量如盒子,贴标签装值
取名有意义,类型要分清
整数计个数,小数量尺寸
文字用字符串,真假布尔型
先存后使用,计算更轻松
每天用变量,编程基础牢
记住:变量是编程的基石。今天掌握的每个概念,都是未来构建复杂程序的砖块。
💬 给家长的话
亲爱的家长:
今天孩子学习了编程的核心概念——变量。这是理解计算机如何"思考"的关键一步。
孩子的收获:
- 抽象思维:理解"名称"与"值"的关系
- 类型思维:区分不同类型的数据
- 组织能力:用变量组织相关信息
- 逻辑思维:通过变量进行计算和推理
您可以帮助的:
观察与引导:
- 孩子是否理解变量是"存储"而不是"计算"?
- 变量命名是否有意义(如
age而不是a)? - 是否注意数据类型(数字和文字的区别)?
互动建议:
- 生活联系:一起找找家里的"变量"(冰箱温度、时间、电量等)
- 命名游戏:给物品起"变量名"
- 计算应用:用Python算零花钱、作业时间
- 错误分析:把编程错误当成侦探游戏
教育价值:
- 系统思维:用变量组织复杂信息
- 精确表达:严格的数据类型和命名规范
- 问题分解:将大问题分解为可管理的变量
- 持续学习:建立扎实的编程基础
温馨提示:
- 建议单次学习:25分钟编程 + 5分钟休息
- 鼓励保存所有练习代码
- 错误是学习机会,不是失败
- 庆祝每一个"理解瞬间"
第3课结束。你现在已经能让计算机"记住"信息了!
实践任务:
1. 用变量记录今天的三件事
2. 制作家人的信息卡片
3. 计算一周的零花钱收支
4. 找出生活中的5个"变量"
下节课,让我们用这些"记忆"做更有趣的计算!
第4课见!🚀
课程内容为本人与AI共创,如有问题可留言交流。