Python变量

2025年4月17日 | 阅读 8 分钟

在 Python 中,变量是允许开发者存储、管理和高效地操作数据的基本构建块。Python 中的变量本质上是一个符号名称,分配给存储数据的内存位置。与 C 或 Java 等静态类型语言不同,Python 是动态类型语言,这意味着变量不需要显式类型声明;其类型是在运行时根据赋给它的值进行推断的。

让我们看一个定义 Python 变量的简单示例

示例

立即执行

输出

17
Daisy

说明

在此示例中,我们定义了一个名为 'a' 的变量,其整数值为 17。然后,我们定义了一个名为 'name' 的变量,其字符串值为 'Daisy'。正如我们所观察到的,我们没有显式声明它们的类型;然而,Python 在运行时自动为它们分配了数据类型

Python 变量的规则和命名约定

Python 在命名变量时遵循一些规则

  • 我们可以使用字母 (A-Z 或 a-z)、数字 (0-9) 和下划线 (_) 来定义变量名。(示例:var_one, var1)
  • 变量名可以以字母或下划线开头,但不能以数字开头。
    • 有效: _var_1
    • 无效: 1var
  • 不允许有空格。
    • 有效: var_one
    • 无效: var one
  • 变量名区分大小写。(fruit, Fruit, 和 FRUIT 是三个不同的变量)
  • 我们不能使用 Python 的保留关键字作为变量名(例如:class, def, return 等)。

为变量赋值

有多种方法可以为变量赋值。

基本赋值

在 Python 中,我们可以借助 "=" 运算符为变量赋值。

让我们看一个简单的例子,展示如何在 Python 中为变量赋值。

示例

立即执行

输出

82

说明

在上面的示例中,我们定义了一个名为 var_one 的变量,并使用 "=" 运算符为其赋值了整数值 82。

动态类型

Python 变量是动态类型的,这意味着我们可以将不同类型的值存储在同一个变量中。

以下是一个展示 Python 动态类型如何工作的示例。

示例

立即执行

输出

21
tpointtech

说明

在此示例中,我们通过赋值整数值 21 初始化了一个变量 var_one。由于 Python 中的变量是动态类型的,我们已将新值 'tpointtech'(字符串)重新分配给 var_one。

多重赋值

在 Python 中,我们可以在一行中为多个变量赋值。

将相同的值赋给多个变量

在 Python 中,我们可以在一行代码中将相同的值赋给多个变量。

示例

立即执行

输出

Variable 1: 182
Variable 2: 182
Variable 3: 182

说明

在上面的示例中,我们使用 "=" 运算符将整数值 182 赋给了多个变量,如 var_1, var_2 和 var_3。

为多个变量赋值不同的值

Python 还为我们提供了同时为多个变量赋值不同值的便利。这样代码就变得简洁易读。

示例

立即执行

输出

Variable 1: 182
Variable 2: Tpointtech
Variable 3: 19.5

说明

在上面的示例中,我们在同一行代码中定义了多个变量,如 var_1, var_2 和 var_3,并为它们赋予了不同的值。

类型转换变量

类型转换是将一种数据类型的值转换为另一种数据类型的过程。在某些情况下,Python 会自动转换类型。但是,有一些内置函数,如 int(), float(), str() 等,以便于类型转换。

让我们看一个展示 Python 类型转换如何工作的示例。

示例

立即执行

输出

2.25
2

说明

在上面的示例中,我们初始化了一个 'int' 变量,并执行了一个简单的数学除法,得到一个浮点数值,并将其存储在另一个变量中。在这种情况下,Python 已自动将其分配为 'float' 变量。

在下一个例子中,我们使用 int() 方法将 'float' 变量显式转换为 'int' 变量。

获取变量的类型

在 Python 中,我们可以确定变量的数据类型。Python 提供了一个内置函数 type(),它返回传递给它的对象的类型。

以下是展示 Python 中 type() 函数用法的示例。

示例

立即执行

输出

18 -> <class 'int'>
82.6 -> <class 'float'>
Tpoint Tech -> <class 'str'>
True -> <class 'bool'>
[4, 1, 8, -5] -> <class 'list'>

说明

在上面的示例中,我们定义了几个具有不同数据类型的变量。然后,我们使用 type() 函数来返回传递给它的每个变量的类型。

变量的作用域

在 Python 中,变量的作用域是指代码中可访问它的区域。在任何函数外部声明的变量具有全局作用域;而在函数内部声明的变量具有局部作用域,仅在该函数内部可访问。

让我们看一个展示 Python 中变量不同作用域的示例。

示例

立即执行

输出

15 + 12 = 27
var_x = 15

说明

在上面的示例中,我们初始化了一个变量 var_x,其整数值为 15。然后,我们定义了一个简单的函数 add_num() 来打印两个数字的和。在此函数内部,我们初始化了另一个变量 var_y,其整数值为 12。由于此变量定义在函数内部,因此该变量的作用域仅限于该函数。但是,定义在函数外部的 var_x 可以在程序中的任何地方访问。

如果我们尝试在函数外部访问局部作用域的变量,它将引发 NameError。

Python 中的对象引用

Python 中的变量是对内存中对象的引用。这意味着它们不直接存储实际数据,而是存储该对象的引用。

当我们为变量赋值时,我们实际上是将该变量名绑定到内存中的一个对象。

让我们借助一个例子来理解对象引用。

我们将从为变量 p 赋值 9 开始,如下所示


python variables

对于这个语句,Python 将创建一个对象来表示值 9,并使变量 p 指向该对象。

现在我们将初始化另一个变量 q 并将其赋给 p,如下所示


python variables

在这里,我们将变量 q 赋给了与变量 p 相同的引用。因此,现在变量 p 和 q 都引用同一个对象。

现在,我们将新值 'Tpoint' 赋给变量 p,如下所示


python variables

在这里,我们为变量 p 赋值了字符串值 'Tpoint'。当我们执行此语句时,Python 将创建一个新对象来表示 'Tpoint',并使变量 p 指向这个新创建的对象。但是,变量 q 仍然引用 9。

现在,我们将一个值赋给变量 q,如下面的语法所示


python variables

上述语句允许 Python 创建一个存储字符串值 'Hello' 的新对象,并使 q 指向它。因此,值为 9 的对象不再有任何引用,使其可以被垃圾回收。

删除变量

Python 提供了一个名为 del 的关键字,允许我们从命名空间中删除变量。

让我们看一个展示 Python 中 del 关键字用法的简单示例。

示例

立即执行

输出

15

说明

在上面的示例中,del 关键字已将变量 var_x 从内存中删除。因此,如果我们尝试访问 var_x,它将引发 NameError,因为该变量已不再存在于程序中。

结论

在本教程中,我们学习了 Python 变量的基础知识。理解 Python 中的变量至关重要,因为它们构成了数据存储和操作的基础。凭借 Python 的动态类型、灵活的赋值和简单的语法等特性,使用变量变得有效且高效。掌握变量作用域、类型转换和对象引用等概念将有助于我们编写更简洁、更强大的 Python 代码。


Python 变量 - 选择题

1. 下列哪项是 Python 变量的特征?

  1. 变量需要显式类型声明
  2. Python 是静态类型的
  3. 变量效率低下
  4. Python 是动态类型的
 

答案: d) Python 是动态类型的


2. 以下代码的输出是什么?

  1. 10 20
  2. 10 20 30
  3. a b c
  4. Error
 

答案: b) 10 20 30


3. 一个变量只能在函数内部访问;如何定义它?

  1. 全局变量
  2. 局部变量
  3. 静态变量
  4. 实例变量
 

答案: b) 局部变量


4. Python 中的 global 关键字有什么作用?

  1. 它定义了一个全局变量
  2. 它修改了函数内部的全局变量
  3. 它使一个变量仅在函数内部可用
  4. 它从内存中删除了一个变量
 

答案: b) 它修改了函数内部的全局变量


5. 以下代码的结果是什么?

  1. 10 <class 'str'>
  2. 10 <class 'int'>
  3. Error
  4. None <class 'int'>
 

答案: b) 10 <class 'int'>