![网络工程师的Python之路:网络运维自动化实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/47/35011047/b_35011047.jpg)
2.1 变量
所谓变量(Variable),顾名思义,指在程序运行过程中,值会发生变化的量。与变量相对应的是常量,也就是在程序运行过程中值不会发生变化的量,不同于C/C++等语言,Python并没有严格定义常量这个概念,在Python中约定俗成的方法是使用全大写字母的命名方式来指定常量,如圆周率PI=3.1415926。
变量是存储在内存中的一个值,在创建一个变量后,也就意味着在内存中预留了一部分空间给它。变量用来指向存储在内存中的一个对象,每个对象根据自身情况又可以代表不同的数据类型(Data Type)。我们可以通过变量赋值这个操作将变量指向一个对象,比如下面的a = 10即一个最简单的变量赋值的示例。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-050-1.jpg?sign=1739260678-yhJp5KhTvmxacLIoxDtMjPdQqOOnlAx7-0-cfd5068fe69e2f4466f74343aedf87d2)
在Python中,我们使用等号=来连接变量名和值,进而完成变量赋值的操作。这里将10这个整数(也就是内存中的对象)赋值给变量a,因为10本身是“整数”(Integer),所以变量a此时就代表了“整数”这个数据类型的值。我们可以使用type()函数来确认a的数据类型,发现变量a的数据类型此时为int,也就是integer的缩写,代码如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-051-1.jpg?sign=1739260678-DSYSMld8LXWGxlRaQ33tC3wckxYcecf9-0-0ed97288a915fee4bbe80abb511c2b07)
Python是一门动态类型语言,和C、Java等不同,我们无须手动指明变量的数据类型,根据赋值的不同,Python可以随意更改一个变量的数据类型。举例来说,刚才我们把“整数”这个数据类型的值赋值给变量a,现在再次赋值一个内容为test的字符串(String)数据类型的值给变量a,然后用type()函数确认,这时a的数据类型已经从int变为了str,即字符串,代码如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-051-2.jpg?sign=1739260678-IzzkzmlFuxvUcXmxkL2JvC1FvNguRoqs-0-aa35478c282bb65076d7d452ea6f86e3)
变量名可以用大小写英文字母、下画线、数字来表示,但是不能包含标点符号、空格及各类其他特殊符号,如括号、货币符号等。
变量名可以以字母和下画线开头,但是不能以数字开头,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-051-3.jpg?sign=1739260678-zujXUS3Y1CrQh2VAcZADfhKD6uOSKpZW-0-b0e0da1c719e5adc6f50c24197dcf284)
这里Python解释器返回了“SyntaxError: invalid syntax”这个无效语法的错误提示,告诉我们123c为无效的变量名。这也是使用解释器来学习Python的优势,无论代码里出现什么问题,都能得到“即时反馈”。
变量名区分大小写,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-052-1.jpg?sign=1739260678-IhixRpgLAkU8Snu5U3qzW0lm4ldKu02S-0-df80cdf722125a27d5653d687d5f681a)
如果变量名中间出现两个或以上的单词,则只能用下画线将它们连接,不可以使用空格将它们隔开,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-052-2.jpg?sign=1739260678-ceeZ4k5phM0GO3j8qNOfU52BTsdeEWnP-0-1f142a46abd1c47e2ea9d00fe23658a3)
最后,不是所有的英文单词都能用作变量名,Python中有保留字(Reserved Word)的概念。保留字通常是Python中常用的关键词,比如用作创建函数的“def”,用作while循环和for循环的“while”和“for”,等等。可以用下面的方法来查询当前的Python版本中有哪些保留字。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-052-3.jpg?sign=1739260678-Q7FIaLYyUGW17LbaWeul3eQh9hcDDn0k-0-49b9e399f44fc985cbb4ce0440fca2a9)
看不懂上面的代码没关系,本书后面会讲到它们的用法。这里只需注意输入print(keyword.kwlist)后的返回值为一个列表,该列表中的元素(列表和元素的概念后文会讲到)即当前Python版本中的保留字,这些保留字均不能用来做变量名,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-053-1.jpg?sign=1739260678-JY8cFt1Z50NQW5wgEZ9eme4RkSCcV8Pk-0-890cabcedba65164a485e3d92f60588b)