Skip to content

Python 变量

如何在 Python 中创建和使用变量——动态类型、命名与赋值。

你将学到

  • 如何给变量赋值(无需声明关键字)
  • Python 的动态类型及如何检查类型
  • 变量命名规则与约定(PEP 8)
  • 多重赋值与交换变量

概念讲解

创建变量

在 Python 中,只需赋值即可创建变量。没有 letconstvar 关键字——赋值 = 自动创建变量:

name = "Ada"
age = 25
pi = 3.14159
is_admin = True

动态类型

Python 是动态类型的——变量可持有任何类型,且类型可在运行时改变。你无需声明类型,Python 自己推断:

x = 10          # x 是 int
x = "hello"     # 现在 x 是 str
x = [1, 2, 3]   # 现在 x 是 list

type() 查看变量当前持有什么类型,用 isinstance() 测试类型:

print(type(age))         # <class 'int'>
print(isinstance(age, int))  # True

命名规则

变量名必须:

  • 以字母或下划线开头(不能以数字)
  • 只含字母、数字和下划线
  • 不能是保留关键字(ifforclass 等)
  • 区分大小写(ageAge 不同)

PEP 8 约定:

  • 变量和函数用 snake_case:user_counttotal_price
  • 常量用 UPPER_SNAKE_CASE:MAX_CONNECTIONSPI
  • 类用 PascalCase:MyClass
  • _ 开头的名称按约定为"私有":_internal_value

多重赋值

Python 允许一次赋多个变量,既简洁又可读:

# 把同一个值赋给多个变量
x = y = z = 0

# 一行赋不同的值
name, age, role = "Ada", 25, "admin"

# 不用临时变量交换两个变量
a, b = 1, 2
a, b = b, a  # 现在 a=2, b=1

变量是引用

当你把对象(如列表)赋给变量时,变量是该对象的引用。这对可变性很重要:

a = [1, 2, 3]
b = a           # b 指向同一个列表
b.append(4)
print(a)        # [1, 2, 3, 4]——a 也变了!

要创建副本,用 b = a.copy()b = list(a)

示例代码

              # 基本赋值——无需声明关键字
name = "Ada Lovelace"
age = 25
height = 1.68
is_student = True

print(f"{name} is {age} years old and {height}m tall")

# 动态类型——同一变量可改变类型
x = 10
print(type(x))   # <class 'int'>
x = "now a string"
print(type(x))   # <class 'str'>

# 多重赋值
a, b, c = 1, 2, 3
print(f"a={a}, b={b}, c={c}")

# 不用临时变量交换
a, b = b, a
print(f"After swap: a={a}, b={b}")

# 变量是引用——小心可变对象
original = [1, 2, 3]
reference = original
reference.append(4)
print(f"original is also changed: {original}")  # [1, 2, 3, 4]

# 改用真正的副本
copy = original.copy()
copy.append(5)
print(f"original is NOT changed: {original}")   # 仍是 [1, 2, 3, 4]
            

展示了基本赋值、动态类型 type()、多重赋值、交换技巧、列表的共享引用陷阱,以及用 .copy() 避免它。

动手试一试

常见错误

错误写法

在条件中用单个 =(赋值)而非 ==(比较)

正确做法

Python 中 = 赋值,== 比较。if x = 5 是 SyntaxError;用 if x == 5。Python 在解析时就能捕获这个错误。

错误写法

以为 b = a 会复制列表,结果两个都变了很惊讶

正确做法

b = a 创建对同一对象的引用,不是副本。用 b = a.copy() 做浅拷贝,或 import copy; b = copy.deepcopy(a) 处理嵌套结构。

相关速查表

练习 Python 变量

2 个练习

练习 Python 变量

查阅不认识的术语

新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。

查看术语表

动手做项目

通过引导式项目应用所学,含起始代码与解决方案。

查看项目

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误