从现在开始,你将第一次了解 python 中的变量。这部分内容包含三个视频,演示了你可能会遇到的一些不同情形!
python 中经常会用到变量!下面是你在视频中看到的示例:
mv_population = 74728
mv_population
是变量,负责存储 74728
的值。该表达式将右侧的项目赋值给左侧的名称,实际上和数学等式有所不同,因为 74728
不存储 mv_population
的值。
在任何情况下,无论左侧项是什么么,在赋值后,都是右侧值的变量名称。一旦将变量值赋值给变量名称,你便可以通过该名称访问这个值。
在此视频中,你发现以下两个表达式在赋值方面是对等的:
x = 3
y = 4
z = 5
以及
x, y, z = 3, 4, 5
但是,在大多数情况下,上面的表达式并不是很好的赋值方式,因为变量名称应该要能够描述所存储的值。
除了要设定具有描述性的变量名称之外,在 Python 中命名变量时,还需要注意以下几个事项:
1
. 只能在变量名称中使用常规字母、数字和下划线。不能包含空格,并且需要以字母或下划线开头。
2
. 不能使用保留字或内置标识符,它们在 Python 中具有重要含义,你将在整个这门课程中学到这些知识。python 保留字列表请参阅此处。创建对值清晰描述的名称可以帮助你避免使用这些保留字。下面是这些保留字的简要表格。
3
. 在 python 中,变量名称的命名方式是全部使用小写字母,并用下划线区分单词。
正确
my_height = 58
my_lat = 40
my_long = 105
错误
my height = 58
MYLONG = 40
MyLat = 105
虽然最后两个在 python 中可以运行,但是它们并不是在 python 中命名变量的推荐方式。我们命名变量的方式称之为 snake case,因为我们用下划线连接单词。
以下是视频中的赋值运算符。你还可以按照类似的方式使用 *=
,但是与下方所示的运算符相比不太常见。你可以在此处找到我们已经介绍的大部分知识的实践内容:
使用变量。这道练习的注释(以 #
开头的行)提供了创建和修改变量的说明。请在每条注释后面根据说明写一行代码。
注意,这段代码使用了科学记数法来定义很大的数字。4.445e8
等于 4.445 * 10 ** 8
,也就是 444500000.0
。
# The current volume of a water reservoir (in cubic metres)
reservoir_volume = 4.445e8
# The amount of rainfall from a storm (in cubic metres)
rainfall = 5e6
# decrease the rainfall variable by 10% to account for runoff
rainfall *= 0.9
# add the rainfall variable to the reservoir_volume variable
reservoir_volume += rainfall
# increase reservoir_volume by 5% to account for stormwater that flows
# into the reservoir in the days following the storm
reservoir_volume *= 1.05
# decrease reservoir_volume by 5% to account for evaporation
reservoir_volume *= 0.95
# subtract 2.5e5 cubic metres from reservoir_volume to account for water
# that's piped to arid regions.
reservoir_volume -= 2.5e5
# print the new value of the reservoir_volume variable
print(reservoir_volume)
更改变量会如何影响到用该变量定义的另一个变量?我们来看一个示例。
这是关于山景城人口和人口密度的原始数据。
>>> mv_population = 74728
>>> mv_area = 11.995
>>> mv_density = mv_population/mv_area
现在我们重新定义 mv_population
变量:
>>> mv_population = 75000
思考一下上方的代码,下面的表达式输出会是什么?
>>> print(int(mv_density))
对于第一个多选题练习,正确答案是 int(mv_density)
的值没有变化。它依然是 6229。
因为当变量被赋值时,赋给了右侧的表达式的值,而不是表达式本身。在下面的行中:
>>> mv_density = mv_population/mv_area
Python 实际上计算了右侧表达式 mv_population/mv_area
的结果,然后将变量 mv_density
赋为该表达式的值。它立即忘记该公式,仅将结果保存到变量中。
考虑到 mv_population
的变化,为了更新 mv_density
的值。我们需要再次运行下面这行:
>>> mv_density = mv_population/mv_area
>>> print(int(mv_density))
6252
这是人们往返城市后,出现的新人口密度。所有变量都已更新为 mv_population
变化后的对应结果。