目录
1. 变量定义
- 定义变量:使用赋值运算符
=
将一个值赋给一个变量。 - 命名规则:
- 变量名必须以字母(A-Z、a-z)或下划线
_
开头。 - 后续可以包含字母、数字(0-9)和下划线
_
。 - 变量名区分大小写,例如
Variable
和variable
是不同的变量。 - 避免使用 Python 保留字(如
class
,if
,for
等)作为变量名。
- 变量名必须以字母(A-Z、a-z)或下划线
示例:
x = 10
name = "Alice"
_age = 25
2. 变量类型
Python 是动态类型语言,变量的类型由值决定。常见的类型包括:
-
整数 (
int
):用于表示整数值。num = 42
-
浮点数 (
float
):用于表示小数值。pi = 3.14
-
字符串 (
str
):用于表示文本。greeting = "Hello, World!"
-
布尔值 (
bool
):用于表示真(True
)和假(False
)。is_active = True
-
列表 (
list
):用于存储多个值,支持修改。numbers = [1, 2, 3, 4]
-
元组 (
tuple
):用于存储多个值,不支持修改。coordinates = (10, 20)
-
字典 (
dict
):用于存储键值对。student = {"name": "Alice", "age": 25}
-
集合 (
set
):用于存储唯一值。unique_numbers = {1, 2, 3}
3. 变量作用域
-
局部变量:在函数或块内部定义的变量,只在该函数或块内有效。
def my_function(): local_var = 10 print(local_var) # 输出: 10 my_function() # print(local_var) # 会引发 NameError
-
全局变量:在函数外部定义的变量,在整个程序中有效。
global_var = 20 def another_function(): print(global_var) # 输出: 20 another_function()
-
global
关键字:在函数内部修改全局变量的值时需要使用global
关键字。global_var = 30 def modify_global(): global global_var global_var = 40 modify_global() print(global_var) # 输出: 40
4. 变量类型转换
-
转换为整数:使用
int()
num = int("42")
-
转换为浮点数:使用
float()
num = float("3.14")
-
转换为字符串:使用
str()
text = str(42)
-
转换为列表:使用
list()
lst = list((1, 2, 3))
-
转换为元组:使用
tuple()
tpl = tuple([1, 2, 3])
-
转换为集合:使用
set()
s = set([1, 2, 2, 3])
5. 常见操作
-
赋值操作:给变量赋值,通常使用
=
运算符。a = 10
-
多重赋值:一次性给多个变量赋值。
x, y, z = 1, 2, 3
-
交换值:使用 Python 的简洁语法交换两个变量的值。
a, b = b, a
6. 变量作用域示例
# 全局变量
var = "Global"
def my_function():
# 局部变量
var = "Local"
print(var) # 输出: Local
my_function()
print(var) # 输出: Global
扩展知识点1:
1. 单个下划线 _
-
单个下划线前缀 (
_var
):- 用于指示变量是“受保护的”或“内部使用”的,不应该在模块外部直接访问。
- 这种变量仍然是公共的,但加了下划线是一种约定,表示这是模块的内部实现细节。
- 例如:
_internal_variable
示例:
class MyClass: def __init__(self): self._internal_var = 42 obj = MyClass() print(obj._internal_var) # 仍然可以访问,但应避免直接访问
-
单个下划线作为临时或不需要的变量:
- 在一些情况下,单个下划线用于表示临时变量或不需要的变量,尤其是在循环中。
- 例如,在迭代时不关心索引值:
for _ in range(5): print("Hello")
2. 双下划线前缀 (__var
)
-
双下划线前缀 (
__var
):- 用于实现名称修饰(Name Mangling),它会将变量名更改为
_ClassName__var
,以防止子类意外覆盖父类中的变量。 - 这种做法可以避免与子类中的变量名冲突,是一种强制性保护的方式。
- 例如:
__private_variable
示例:
class MyClass: def __init__(self): self.__private_var = 42 def get_private_var(self): return self.__private_var obj = MyClass() print(obj.get_private_var()) # 输出: 42 # print(obj.__private_var) # 会引发 AttributeError # 使用名称修饰后访问 print(obj._MyClass__private_var) # 输出: 42
- 用于实现名称修饰(Name Mangling),它会将变量名更改为
3. 双下划线前缀和双下划线后缀 (__var__
)
-
双下划线前缀和后缀 (
__var__
):- 用于 Python 的特殊方法或属性,这些方法和属性在 Python 中有特定的意义,比如
__init__
,__str__
,__len__
。 - 这些是“魔法方法”或“特殊方法”,用于定义类的特定行为。
示例:
class MyClass: def __init__(self, value): self.value = value def __str__(self): return f"MyClass with value {self.value}" obj = MyClass(10) print(obj) # 输出: MyClass with value 10
- 用于 Python 的特殊方法或属性,这些方法和属性在 Python 中有特定的意义,比如
总结:
- 单个下划线:表示变量是内部使用的或不重要的(但仍然可以访问)。
- 双下划线前缀:用于名称修饰,防止与子类中变量冲突。
- 双下划线前缀和后缀:用于特殊方法和属性,这些方法和属性有特殊用途和意义。