>>> from env_helper import info; info()
页面更新时间: 2024-01-03 10:13:50
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-16-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

1.5. 变量

变量(variable)是计算机编程中的常见概念。

在数学,尤其是代数学中也有“变量”的概念。

计算机编程对待变量的方式稍有不同,一定要注意其中的差异。 “变量”就像计算机内存中的一个盒子,其中可以存放一个值。如果你的程序 稍后将用到一个已求值的表达式的结果,就可以将它保存在一个变量中。 变量是表示(或指向)特定值的名称。

1.5.1. 赋值语句

Python中的变量理解起来很容易。 用“赋值语句”将值保存在变量中。赋值语句包含一个变量名、一个等号(称为赋值操作符),以及要存储的值。 如果输入赋值语句 spam = 42 ,那么名为 spam 的变量将保存一个整型值 42

例如,在交互式环境中输入以下内容:

>>> spam = 40

可以将变量看成一个带标签(变量名)的盒子,值放在其中。spam = 42 就像是告诉程序“变量 spam 现在有整数42放在里面。

这称为赋值(assignment),我们将值 40 赋给了变量 spam 。换而言之,就是将变量 span 与值(或对象) 3 关联起来。

赋值之后就可以使用:

>>> spam
40

不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。

>>> eggs = 2

给变量赋值后,就可在表达式中使用它。

>>> spam + eggs
42
>>> spam + eggs + spam
82
>>> spam
40

第一次存入一个值,变量就被“初始化”(或创建)。此后,可以在表达式中 使用它,以及其他变量和值。如果变量被赋了一个新值,老值就被忘记了。这就是为什么在例子结束时,spam 求值为42 ,而不是40 。这称为“覆写”该变量。 在交互式环境中输入以下代码,尝试覆写一个字符串:

>>> spam = 'Hello'
>>> spam
'Hello'
>>> spam = 'Goodbye'
>>> spam
'Goodbye'

Goodbye1 就像盒子,这个例子中的 spam 变量保存了 'Hello' ,直到你用 'Goodbye' 替代它。

1.5.2. 变量名的基本要求

下表中有一些合法变量名的例子。你可以给变量取任何名字,只要它遵守以下3条规则:

  • 只能是一个词,即中间不能有空格。

  • 只能包含字母、数字和下划线 _

  • 不能以数字开头。

  • 在Python 3.x中,可以使用Unicode编码,如汉字。

看一下使用汉字的变量:

>>> 变量是我 = 'The variable is me.'
>>> print(变量是我)
The variable is me.

有效和无效的变量名

有效的变量名

无效的变量名

balance

current-balance(不允许中划线)

currentBalance

current balanc(不允许空格)

current_balance

4account(不允许数字开头)

_spam

42(不允许数字开头)

SPAM

total__\(um(不允许\)这样的特殊字符)

account4

‘hello’(不允许’这样的特殊字符)

下面来看一些无效的变量名来加强理解:

>>> current-balance = 10
  Cell In [19], line 1
    current-balance = 10
    ^
SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?
>>> current balance = 10
  Cell In [20], line 1
    current balance = 10
            ^
SyntaxError: invalid syntax
>>> 4accout = 10
  Cell In [21], line 1
    4accout = 10
    ^
SyntaxError: invalid decimal literal
>>> total__𝑢𝑚 = 10
>>> ‘hello’ = 10
  Cell In [23], line 1
    ‘hello’ = 10
    ^
SyntaxError: invalid character '‘' (U+2018)

1.5.3. 变量名的风格

变量名是区分大小写的。这意味着, spamSPAMSpamsPaM 是4个不 同的变量。 变量用小写字母开头是Python的惯例。

变量名可以使用驼峰形式,没有用下划线。也就是说,变量名用 lookLikeThis ,而不是 looking_like_this 。 一些有经验的程序员可能会指出,官方的 Python代码风格PEP 8,即应该使用下划线。

有人喜欢驼峰式命名法,这没有错,如果有怀疑,请参见 PEP 8 “愚蠢的一致性是头脑狭隘人士的心魔”:

“一致地满足风格指南是重要的。但最重要的是,知道何时要不一致,因为有时候风格指南就是不适用。如果有怀疑,请相信自己的最佳判断。”

1.5.4. 关于变量名称

好的变量名描述了它包含的数据。 设想你搬到一间新屋子,搬家纸箱上标的都是“东西”。 你永远找不到任何东西!

在一些教程或脚本程序中,有时为了方便,使用 var1spameggsbacon 等变量名作为一般名称, 但在程序中,具有描述性的名字有助于提高代码可读性。