一、什么是变量?
变量是程序中用来存储数据的“容器”——就像贴了标签的盒子,你可以往里面放东西,也可以随时取出或更换。
# 变量定义:盒子名 = 里面的东西
name = "小明"# name这个盒子里放了"小明"
age = 18# age这个盒子里放了18
变量三要素:
- • 赋值符号:
=(不是数学里的等号,而是“把...放进...”)
二、变量的定义与使用
2.1 基本定义语法
变量名 = 值
案例:
# 字符串变量
name = "Python"
course = "编程入门"
# 数字变量
version = 3.11
year = 1991
# 布尔变量
is_easy = True
is_free = False
# 使用变量
print(name) # Python
print(version) # 3.11
print(name + "诞生于" + str(year)) # Python诞生于1991
2.2 变量的特性
特性1:动态类型——变量类型由值决定,随时可改变
# 同一个变量可以赋不同类型
x = 10# 整数
print(type(x)) # <class 'int'>
x = "Hello"# 字符串
print(type(x)) # <class 'str'>
x = True# 布尔值
print(type(x)) # <class 'bool'>
特性2:变量可以重新赋值
score = 80
print(score) # 80
score = 95# 重新赋值
print(score) # 95
score = score + 5# 在原值基础上增加
print(score) # 100
特性3:多个变量可以同时赋值
# 方式1:一行一个
a = 1
b = 2
c = 3
# 方式2:一行多个(元组解包)
a, b, c = 1, 2, 3
# 方式3:相同值
x = y = z = 0
2.3 变量定义实战案例
案例1:个人信息卡
# 定义变量
name = "张三"
age = 25
city = "北京"
job = "Python工程师"
salary = 20000
# 使用变量
print("=" * 30)
print(" 个人名片")
print("=" * 30)
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"城市:{city}")
print(f"职业:{job}")
print(f"月薪:{salary}元")
print("=" * 30)
案例2:简单计算器
# 定义变量
a = 15
b = 4
# 各种运算
sum_result = a + b
diff_result = a - b
product_result = a * b
quotient_result = a / b
remainder = a % b
# 输出结果
print(f"{a} + {b} = {sum_result}")
print(f"{a} - {b} = {diff_result}")
print(f"{a} × {b} = {product_result}")
print(f"{a} ÷ {b} = {quotient_result}")
print(f"{a} ÷ {b} 的余数 = {remainder}")
三、命名规则(必须遵守)
3.1 硬性规则(不遵守会报错)
规则1:只能包含字母、数字、下划线
# ✅ 正确
name = "小明"
user_name = "小红"
age2 = 18
_private = "私有变量"
# ❌ 错误
user-name = "张三"# 不能有短横线
name$ = "李四"# 不能有美元符号
2age = 20# 不能以数字开头
规则2:不能以数字开头
# ✅ 正确
user1 = "用户1"
user_2 = "用户2"
# ❌ 错误
1user = "用户1"# SyntaxError
123abc = "测试"# SyntaxError
规则3:不能是Python关键字
# Python关键字列表(共35个)
# False, True, None, and, or, not, if, else, elif
# for, while, break, continue, return, def, class
# import, from, as, try, except, finally, with
# is, in, lambda, global, nonlocal, pass, assert
# raise, yield, del, await, async
# ✅ 正确
class_name = "Python班"# 加下划线避免冲突
if_condition = True# 加下划线
# ❌ 错误
class = "Python班"# class是关键字
if = True# if是关键字
return = 10# return是关键字
规则4:区分大小写
# 以下三个是完全不同的变量
name = "小明"
Name = "小红"
NAME = "小刚"
print(name) # 小明
print(Name) # 小红
print(NAME) # 小刚
3.2 命名规范(建议遵守)
规范1:见名知意
# ❌ 不好的命名
a = "张三"
b = 25
c = "北京"
# ✅ 好的命名
name = "张三"
age = 25
city = "北京"
规范2:使用下划线分隔单词(蛇形命名法)
# Python官方推荐:小写字母 + 下划线
user_name = "admin"
first_name = "张"
last_name = "三"
is_logged_in = True
total_price = 199.99
规范3:常量用全大写
# 常量:程序中不该改变的值
PI = 3.14159
MAX_SIZE = 100
DEFAULT_COLOR = "black"
TAX_RATE = 0.13
规范4:类名用驼峰命名
# 类名:首字母大写(大驼峰)
classStudentInfo:
pass
classCarModel:
pass
四、变量命名实战对照
4.1 学生信息场景
# ❌ 糟糕的命名
s1 = "张三"
s2 = 18
s3 = 90.5
s4 = True
# ✅ 优秀的命名
student_name = "张三"
student_age = 18
student_score = 90.5
is_passed = True
# 或者用前缀分组
stu_name = "张三"
stu_age = 18
stu_score = 90.5
stu_pass = True
4.2 电商场景
# ❌ 糟糕的命名
p = "笔记本电脑"
q = 2
u = 5999.00
d = 0.1
# ✅ 优秀的命名
product_name = "笔记本电脑"
quantity = 2
unit_price = 5999.00
discount_rate = 0.1
# 计算总价
total_price = quantity * unit_price * (1 - discount_rate)
print(f"商品:{product_name},数量:{quantity},总价:{total_price}元")
4.3 游戏场景
# ❌ 糟糕的命名
x = 100
y = 200
h = 100
s = 5
# ✅ 优秀的命名
player_x = 100
player_y = 200
player_health = 100
player_speed = 5
enemy_x = 300
enemy_y = 150
enemy_health = 80
五、变量的数据类型
5.1 基本数据类型
| | | |
int | | age = 18 | |
float | | price = 19.99 | |
str | | name = "Python" | |
bool | | is_ok = True | |
NoneType | | data = None | |
5.2 查看变量类型
# type()函数查看类型
name = "Python"
version = 3.11
year = 1991
is_popular = True
print(type(name)) # <class 'str'>
print(type(version)) # <class 'float'>
print(type(year)) # <class 'int'>
print(type(is_popular)) # <class 'bool'>
# 类型转换
age_str = "25"
age_int = int(age_str) # 字符串转整数
price_float = float("19.99") # 字符串转浮点数
age_str_again = str(25) # 整数转字符串
六、常见错误与解决方法
错误1:使用未定义的变量
# ❌ 错误
print(age) # NameError: name 'age' is not defined
# ✅ 正确
age = 18
print(age)
错误2:拼写不一致
# ❌ 错误
user_name = "小明"
print(usr_name) # NameError(拼写错误)
# ✅ 正确
user_name = "小明"
print(user_name) # 保持一致
错误3:混淆=和==
# = 是赋值,== 是等于比较
# ❌ 错误
if score = 100: # 这里应该是==
print("满分")
# ✅ 正确
if score == 100:
print("满分")
错误4:中文变量名(不推荐)
# Python3支持中文变量名,但强烈不推荐
姓名 = "张三"# 虽然能运行,但不要这样写
年龄 = 25# 与国际惯例不符,合作困难
# ✅ 正确做法
name = "张三"
age = 25
七、变量命名最佳实践总结
7.1 好变量名的特征
✅ 描述性强:total_price 优于 tp
✅ 长度适中:user_age 优于 u_a 也优于 this_is_the_age_of_the_current_user
✅ 符合习惯:遵循团队或社区的命名规范
✅ 一致性:全项目用同一种命名风格
7.2 变量命名速查表
| | |
| user_name | name |
| age | a |
| is_active | active |
| total_count | count |
| unit_price | p |
| create_date | date |
| user_list | list |
7.3 三字口诀
见名知意是第一
下划线分单词好
常量全用大写标
关键字名要避开
大小写意要分清
命名规范终身用
八、练习与验证
练习1:找出错误命名
# 以下哪些变量名是错的?为什么?
1. user-name = "张三"
2. _private = "私有"
3. 2nd_place = "亚军"
4.class = "Python"
5. user_name = "李四"
6.if = True
7. max_value = 100
8.import = "模块"
答案: 1(有横线)、3(数字开头)、4(class关键字)、6(if关键字)、8(import关键字)
练习2:改进命名
# 把下面的变量名改得更好
a = "苹果"# 改为:product_name
b = 5# 改为:quantity
c = 8.5# 改为:unit_price
d = True# 改为:in_stock
e = a + ":" + str(b) # 保持逻辑
练习3:完整案例优化
# 原代码(命名糟糕)
n = "张三"
a = 25
s = 185.5
w = 75.5
h = "游泳"
m = "13800138000"
# 优化后
name = "张三"
age = 25
height = 185.5
weight = 75.5
hobby = "游泳"
mobile = "13800138000"
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"身高:{height}cm")
print(f"体重:{weight}kg")
print(f"爱好:{hobby}")
print(f"手机:{mobile}")
写在最后
变量是编程的基石,好的变量名是写好代码的第一步:
养成习惯: 写变量名前先想3秒——“这个名字别人能看懂吗?一周后的自己能看懂吗?”
记住: 代码是写给机器运行的,但更是写给人看的。