小白编程
亮色模式 暗色模式 跟随系统
首页 Python

如何在 Python 中定义和使用变量

发布日期:

在 Python 编程中,变量是存储和操作数据的基础工具,理解如何正确定义变量对于编写高效、准确的程序至关重要。本文将介绍 Python 中定义和使用变量的方法。

Python 变量

下面来尝试在 hello_world.py 中定义一个变量,如下所示:

1
message = "欢迎访问小白编程!"

我们定义了一个名为 message 的变量。在 Python 中,每个变量都用来存储一个值,这个值可以是数字、文本或其他类型的数据。在这个例子中,message 变量存储的是一个字符串值,即文本 “欢迎访问小白编程!"。

我们使用 print()message 变量的值打印到屏幕上。

1
2
message = "欢迎访问小白编程!"
print(message)

运行上述代码,你将看到如下输出:

1
欢迎访问小白编程!

下面来进一步扩展这个程序:修改 hello_world.py,使其再打印一条消息。为此,在 hello_world.py 中添加一个空行,再添加两行代码:

1
2
3
4
5
message = "欢迎访问小白编程!"
print(message)

message = "欢迎访问 www.baicoding.com!"
print(message)

现在运行这个程序,将看到两行输出:

1
2
欢迎访问小白编程!
欢迎访问 www.baicoding.com!

这个例子展示了在 Python 程序中,变量的值是可以被随时更改的。Python 会跟踪并记录每个变量的最新值。

变量的命名和使用

在 Python 中使用变量时,遵循一定的规则和最佳实践是非常重要的。这些规则不仅有助于避免错误,还能使你的代码更加易于阅读和理解。以下是在使用变量时需要牢记的一些关键规则:

  1. 变量名的组成:
    • 变量名只能包含字母(A-Za-z)、数字(0-9)和下划线(_)。例如,message_1 是一个有效的变量名。
    • 变量名必须以字母或下划线开头,不能以数字开头。例如,1_message 是无效的,因为它以数字开头。
  2. 空格和下划线的使用:
    • 变量名不能包含空格。为了提高可读性,可以使用下划线来分隔单词。例如,greeting_message 是一个有效的变量名,而 greeting message 会导致错误。
  3. 避免使用 Python 关键字:
    • 不要将 Python 的关键字和内置函数名用作变量名。例如,await 是 Python 的一个关键字,不能用作变量名(关于 Python 关键字的完整列表,请参见表 1)。
  4. 变量名的简洁性和描述性:
    • 变量名应该既简短又具有描述性。例如,namen 更清晰,student_names_n 更易于理解,name_lengthlength_of_persons_name 更简洁。
  5. 避免使用易混淆的字符:
    • 慎用小写字母 l 和大写字母 O,因为它们可能被误认为是数字 10。在需要区分时,可以使用其他字母或增加额外的描述性词汇。

学习创建良好的变量名需要时间和实践,尤其是在编写更有趣和复杂的程序时。随着你编写和阅读更多代码,你将逐渐掌握如何创建有意义且易于理解的变量名。

表 1 Python 关键字,下面的关键字都有特殊的含义,如果将它们用作变量名,将引发错误:

Falseawaitelseimportpass
Nonebreakexceptinraise
Trueclassfinallyisreturn
andcontinueforlambdatry
asdeffromnonlocalwhile
assertdelglobalnotwith
asyncelififoryield

如何在使用变量时避免命名错误

在编程实践中,程序员出现错误是不可避免的,即使是高水平的程序员也不例外。关键在于如何迅速且有效地识别并解决这些问题。接下来,我们来看一个常见的错误类型,并学习如何解决它。

让我们通过一个故意编写一些会引发错误的代码示例来说明这个问题:

1
2
message = "欢迎访问 www.baicoding.com!"
print(mesage)

当程序存在错误时,Python 解释器会全力协助我们定位问题。若程序运行失败,解释器会生成一个回溯(traceback)信息。回溯信息详细记录了解释器在执行代码过程中遇到阻碍的具体位置。以下是因变量名拼写错误而导致的 Python 解释器回溯信息示例:

1
2
3
4
5
Traceback (most recent call last):
  File "hello_world.py", line 2, in <module>
    print(mesage)
          ^^^^^^
NameError: name 'mesage' is not defined. Did you mean: 'message'?   

由上述信息可知,解释器明确指出在文件 “hello_world.py” 的第二行存在错误。它展示该行代码以便于快速定位问题,并指明错误类型。在此例中,解释器检测到一个名称错误,即打印的变量 “mesage” 未被定义,意味着 Python 无法识别该变量名。

名称错误通常源于两种情形:一是在使用变量前未进行赋值操作;二是变量名拼写有误。当遇到无法识别的变量且其名称与其他变量相似时,Python 会提示是否为其他相似变量。

在本示例中,第二行代码中的变量名 “message” 遗漏了字母 “s”。需要注意的是,Python 解释器并不执行拼写检查功能,但要求变量名拼写在代码中保持一致。例如,若在变量定义处也将 “message” 误写为 “mesage”,代码如下:

1
2
mesage = "欢迎访问 www.baicoding.com!"
print(mesage)

此时,程序将顺利运行并输出:

1
欢迎访问 www.baicoding.com!

这是因为变量名在代码中保持了一致,对于 Python 而言不存在问题。编程语言虽规则严格,但并不关注拼写是否符合常规英语拼写与语法规范。

在编程过程中,很多错误极为简单,可能仅仅是某一行代码中的一个字符输入错误。但许多程序员,即便天资聪慧且经验丰富,也常常会耗费数小时来排查这类细微错误。

变量是标签

在编程概念的阐释中,变量常被形象地比喻为能够存储值的“盒子”,这一描述对于编程初学者初步理解变量的功能具有一定的辅助作用。

然而,从 Python 语言内部对变量的处理机制角度出发,此定义未能精准地反映其本质特征。更为确切地说,变量可被视作一种能够被赋予特定值的标签,换言之,变量是指向特定数据值的一种标识。

在编程学习的初始阶段,这种关于变量本质的细微差异或许并不会对学习者产生显著的影响。但是,尽早深入理解这一区别对于编程知识体系的构建具有重要意义。

随着编程实践的深入,必然会遭遇变量运行表现与预期不符的情况。此时,对变量工作原理的精准把握将成为理解代码运行逻辑的关键所在,有助于深入洞察代码背后的执行机制,从而更加高效地进行程序的编写、调试与优化工作。