Python 的基石:变量与赋值
在Python编程中,变量就像一个标签,你可以用它来指向内存中的某个位置,这个位置存储着数据。 理解变量和如何给变量赋值是学习Python的基础。
变量的命名规则
Python对变量的命名有一定的规则,你需要遵循这些规则来创建有效的变量名:
- 起始字符: 变量名必须以字母(小写
a-z
或大写A-Z
)或下划线_
开头。 避免使用数字开头,这会导致语法错误。 - 后续字符: 变量名可以包含字母、数字(
0-9
)和下划线。 - 关键字避让: 不能使用Python的关键字作为变量名。 关键字是Python语言预留的,有特殊含义的单词,例如
if
、else
、for
、while
、def
、class
等。 - 特殊符号禁用: 变量名中不允许使用特殊符号,例如
!
,@
,#
,$
,%
等。
一些有效的变量名示例:
my_variable
_count
name
age
total_sum
一些无效的变量名示例:
1st_name
(以数字开头)my-variable
(包含-
符号)if
(Python关键字)my variable
(包含空格)a!b
(包含特殊符号)
赋值:将数据放入变量
赋值语句用于将一个值(或者更准确地说,一个对象的引用)绑定到一个变量名。使用等号 (=
) 作为赋值运算符。
python
count = 100 # 将整数 100 赋值给变量 count
pi = 3.141 # 将浮点数 3.141 赋值给变量 pi
name = "Python" # 将字符串 "Python" 赋值给变量 name
is_valid = True # 将布尔值 True 赋值给变量 is_valid
在上面的代码中:
count
、pi
、name
和is_valid
是变量名。100
、3.141
、"Python"
和True
是值(更准确地说,是对象)。=
是赋值运算符,它将右边的值(对象)的引用绑定到左边的变量名。
可以将赋值语句理解为: "将等号右边的值赋给等号左边的变量"。
L值和R值:
- L值(左值): 赋值运算符左侧的表达式。 它必须是一个可以存储值的变量,例如
count
。 - R值(右值): 赋值运算符右侧的表达式。 它必须是一个可以求值的表达式,例如
100
、3.141
或"Python"
。
变量的重新赋值
在Python中,变量只是对内存中对象的引用。 你可以将变量重新绑定到相同类型或不同类型的另一个对象。
python
a = 10 # a 现在引用整数 10
a = 3.14 # a 现在引用浮点数 3.14
a = "Hello" # a 现在引用字符串 "Hello"
这意味着Python是动态类型的。 你不需要在使用变量之前声明它的类型,并且变量的类型可以在程序运行过程中改变。 与其他静态类型语言(例如Java或C++)不同,在静态类型语言中,变量一旦声明了类型,就不能再改变。
删除变量
del
语句用于删除变量,也就是解除变量与对象之间的引用关系。
python
>>> a = 10
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
删除变量后,尝试访问它会导致 NameError
,因为该变量不再存在于当前的作用域中。
垃圾回收:
当一个对象不再被任何变量引用时,Python的垃圾回收机制会自动回收该对象所占用的内存空间。 这意味着你通常不需要手动管理内存。
多个变量赋值
Python 允许你在一行代码中给多个变量赋相同的值,这被称为多重赋值。
python
>>> x = y = z = 'foo'
>>> x
'foo'
>>> y
'foo'
>>> z
'foo'
在这个例子中,变量 x
、y
和 z
都被赋值为字符串 "foo"
。 它们都指向内存中同一个字符串对象。
交换变量的值
Python 提供了一种优雅的方式来交换两个变量的值,而无需使用临时变量。 这被称为元组解包。
python
>>> a = 'Hello'
>>> b = 'World'
>>> b, a = a, b
>>> a
'World'
>>> b
'Hello'
这行代码 b, a = a, b
实际上创建了一个元组 (a, b)
,然后将元组中的值分别赋给变量 b
和 a
。 这是一种简洁而高效的交换变量值的方式。