在网络运维中,有时会遇到需要用计数器做统计的时候,比如说某公司有 100 台思科2960 的交换机,由于长期缺乏系统性的运维管理,交换机的 IOS 版本并不统一,为了统计其中有多少台交换机的 IOS 版本是最新的,需要登录所有的交换机,每发现一台 IOS版本为最新的交换机就通过计数器加 1,直到结束。由于要完成这个脚本需要涉及Paramiko、 if、 for 循环、正则表达式等进阶性的 Python 知识点,所以这里仅演示计数器的用法。
>>> counter = 0
>>> counter = counter + 1
>>> counter
1
>>> counter = counter + 1
>>> counter
2
>>> counter += 1
>>> counter
3
>>> counter += 1
>>> counter
4 >
>>
首先我们创建一个变量 counter,将 0 赋值给它,该变量就是我们最初始的计数器。之后如果每次发现有交换机的 IOS 版本为最新,我们就在该计数器上加 1, 注意 counter =counter + 1 可以简写为 counter + = 1。
2.4.3 列表
列表( List)是一种有序的集合,用中括号[]表示,列表中的数据又被叫作元素( Element),每个元素之间都用逗号隔开。列表中的元素的数据类型可以不固定,举例如下。
>>> list1 = [2020, 1.23, 'Cisco', True, None, [1, 2, 3]]
>>>
>>> type(list1[0])
<class 'int'>
>>> type(list1[1])
<class 'float'>
>>> type(list1[2])
<class 'str'>
>>> type(list1[3])
<class 'bool'>
>>> type(list1[4])
<class 'NoneType'>
>>> type(list1[5])
<class 'list'>
>>>
由上可知,我们创建了一个名为 list1 的变量(注意 list 在 Python 中是保留字,并不能被用作变量名,所以我们用 list1 作为变量名),并将一个含有 6 个元素的列表赋值给它。可以看到这 6 个元素的数据类型都不一样,我们使用 type()函数配合列表的索引来验证每个元素的数据类型, 列表的索引号从 0 开始,对应列表里的第 1 个元素。可以发现从第 1个到第 6 个元素的数据类型分别为整数、浮点数、字符串、布尔值、空值,以及列表。注:一个列表本身也可以以元素的形式存在于另一个列表中,举例来说,上面的列表list1 的第 6 个元素为列表[1,2,3],我们可以通过使用两次索引的方法来单独调取列表[1,2,3]中的元素,也就是整数 1、 2、 3。
>>> list1 = [2020, 1.23, 'Cisco', True, None, [1,2,3]]
>>> list1[5][0]
1
>>> list1[5][1]
2
>