理解 Python 变量的本质:对象引用机制
掌握变量命名的规则与最佳实践
熟练使用单值、多值赋值及动态类型特性
学会进行类型转换并判断变量类型
了解变量删除与内存管理的基本原理
在 Python 中,变量是用于存储数据的标识符。它本质上是一个指向对象的引用,而非直接包含数据本身。
Python 是动态类型语言,无需声明变量类型,解释器会根据赋值内容自动推断类型。
x = 5
name = "Samantha"
print(x)
print(name)输出:
5
Samantha注意:
x并不“等于”5,而是引用了值为 5 的整数对象。
要创建合法的变量名,必须遵守以下规则:
只能包含 字母(a–z, A–Z)、数字(0–9)和下划线(_)
不能以数字开头
区分大小写(myVar 与 myvar 是两个不同变量)
不能使用 Python 关键字(如 if, else, for, class 等)
age = 21
_colour = "淡紫色"
total_score = 90
user_name = "张三"1name = "Error" # 以数字开头
class = 10 # 'class' 是保留关键字
user-name = "Doe" # 包含连字符(-)建议:使用小写字母加下划线的命名风格(snake_case),如
student_id,这是 Python 社区推荐的 PEP 8 规范。
使用 = 运算符将值绑定到变量:
x = 5 # 整数
y = 3.14 # 浮点数
z = "你好" # 字符串同一个变量可以在程序运行过程中引用不同类型的数据:
x = 10 # x 引用整数对象
x = "现在是字符串" # x 现在引用字符串对象
print(x) # 输出:现在是字符串a = b = c = 100
print(a, b, c) # 输出:100 100 100注意:对于可变对象(如列表),这种赋值会导致多个变量共享同一对象,修改一个会影响其他变量。
x, y, z = 1, 2.5, "Python"
print(x, y, z) # 输出:1 2.5 Python此特性常用于交换变量值:
a, b = 5, 10
a, b = b, a
print(a, b) # 输出:10 5虽然 Python 自动处理类型,但有时我们需要显式转换数据类型。
s = "10"
n = int(s) # 字符串 → 整数
cnt = 5
f = float(cnt) # 整数 → 浮点数
age = 25
s2 = str(age) # 整数 → 字符串
print(n) # 10
print(f) # 5.0
print(s2) # "25"若转换不兼容(如
int("abc")),会抛出ValueError。
使用内置函数 type() 可获取变量所引用对象的类型:
n = 42
f = 3.14
s = "Hello"
li = [1, 2, 3]
d = {'key': 'value'}
flag = True
print(type(n)) # <class 'int'>
print(type(f)) # <class 'float'>
print(type(s)) # <class 'str'>
print(type(li)) # <class 'list'>
print(type(d)) # <class 'dict'>
print(type(flag)) # <class 'bool'>Python 中的变量不存储数据本身,而是存储对对象的引用。

x = 5 # 创建整数对象 5,x 指向它
y = x # y 也指向同一个对象 5(共享引用)此时,x 和 y 都引用同一个整数对象。
x = "CodeMaster" # 创建新字符串对象,x 指向它
# y 仍指向原来的 5随后:
y = "Computer" # y 指向新的字符串对象
# 原来的整数对象 5 不再被引用,将被垃圾回收关键点:重新赋值不会影响其他变量,因为只是改变了引用目标。
使用 del 语句可从当前命名空间中移除变量:
x = 10
del x
print(x) # 报错!错误信息:
NameError: name 'x' is not defineddel x 并不立即释放内存,而是解除变量名与对象的绑定。当对象没有任何引用时,Python 的垃圾回收机制会自动回收其内存。
无需临时变量
a, b = 5, 10
a, b = b, a
print(a, b) # 输出:10 5word = "Python"
length = len(word)
print("单词长度为:", length) # 输出:单词长度为: 6Python 变量是对象的引用,不是容器。
命名需遵循规则:字母、数字、下划线,不以数字开头,不使用关键字。
支持动态类型、多变量赋值、链式赋值。
类型转换使用 int(), float(), str() 等函数。
type() 用于检查变量类型。
del 删除的是变量名,而非对象本身;对象由垃圾回收机制管理。
多变量赋值和交换是 Python 的简洁特性,应善加利用。
执行以下代码后,a 和 b 是否引用同一个列表对象?为什么?
a = [1, 2, 3]
b = a
b.append(4)
print(a)
如何安全地将用户输入的字符串转换为整数,并在输入无效时提示错误?
为什么 a = b = [] 在某些情况下会导致意外行为?如何正确初始化两个独立的空列表?