![网络工程师的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=1738821301-in9pTJhajuLny0pz0HYdH7rkCgY87EoR-0-0277ef86f1ddfc225b8eacab661ace7e)
在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=1738821301-1PmyP5wX7ZQnI0fI1RYLU6bW3qoUee8R-0-0f9c17a167e32f9b00e0b1bbee3fc565)
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=1738821301-QgUCLfqLzcGhPTnAru5biJSSaeR6rDRI-0-049e8620800afd76974e56a861a6c379)
变量名可以用大小写英文字母、下画线、数字来表示,但是不能包含标点符号、空格及各类其他特殊符号,如括号、货币符号等。
变量名可以以字母和下画线开头,但是不能以数字开头,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-051-3.jpg?sign=1738821301-3out74k7pQ1MlC41PRzoqY5PZiZvJESA-0-ca1e3a53e9098a960596b7ec30d907f3)
这里Python解释器返回了“SyntaxError: invalid syntax”这个无效语法的错误提示,告诉我们123c为无效的变量名。这也是使用解释器来学习Python的优势,无论代码里出现什么问题,都能得到“即时反馈”。
变量名区分大小写,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-052-1.jpg?sign=1738821301-0p9Go7rUydaKs1hU1gSATl8Y8MhUjvNU-0-324028d10bf435f7dca0d1e86e9da824)
如果变量名中间出现两个或以上的单词,则只能用下画线将它们连接,不可以使用空格将它们隔开,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-052-2.jpg?sign=1738821301-sihpdsWFLMa3Nru0VprSFUAmoPjG9KHK-0-f9ab9e95512995936b8bab834e5e12cb)
最后,不是所有的英文单词都能用作变量名,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=1738821301-NIoAOuoDmJmwLqAStC1GdkbNYxsQvdRm-0-1701d1a2fc0103fa25f572cd6a1d8919)
看不懂上面的代码没关系,本书后面会讲到它们的用法。这里只需注意输入print(keyword.kwlist)后的返回值为一个列表,该列表中的元素(列表和元素的概念后文会讲到)即当前Python版本中的保留字,这些保留字均不能用来做变量名,举例如下。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-053-1.jpg?sign=1738821301-10cP3bBNeNKG0NuhVGb9eC5WkGZjlJXo-0-201eb0d12496f67077864f7528ff0f65)