小飞侠带你精通Python网络编程系列0

发布时间:2019-04-01 21:53:49编辑:auto阅读(2241)

    在Python中有以下几种标准的内置数据类型:

    1.NoneType: The Null object--空对象
    2.Numerics(数值): int-整数, long-长整数, float-浮点数, complex-复数, and     bool--布尔值 (The subclass of int with True or False value)
    3.Sequences(序列): str-字符串, list-列表, tuple-元组, and range-范围
    4.Mappings(映射): dict-字典
    5.Sets(集合): set-可变集合 and frozenset-不可变集合

    一、NoneType

    (1)The Nonetype denotes an object with no value.

     #Nonetype是Python的特殊类型,表示一个空对象,值为None

     可以将None赋值给任何变量,但是你不能创建其他NoneType对象。

     【案例】

     

    1 >>> x = None
    2 >>> print(type(x))
    3 <class 'NoneType'>
    4 >>> 

    (2) This is returned in functions that do not explicitly return anything.

      #函数没有明确的返回值时,默认值为None

    【案例】

     

    >>> def subtract(a,b):
        c = a - b
        
    >>> result = subtract(10,5)
    >>> print(result)
    None
    >>> def subtract(a,b):
        c = a - b
        return c
    
    >>> result = subtract(10,5)
    >>> print(result)
    5

     

     (3)The NoneType is also used in function arguments to error out if the caller does not pass in an actual value.

          #如果函数参数中未调用一个实际值,则也会使用none以报错。

    二、Numerics(数值)

    Python numeric对象基本上是数字。除了布尔值,int、long、float和complex的数字类型都有符号,这意味着它们可以是正的也可以是负的。布尔值是整数的子类,可以是两个值之一:1表示真,0表示假。其余数字类型的区别在于它们表示数字的精确程度;例如,int是范围有限的整数,long是范围无限的整数。float是使用机器上的双精度表示(64位)的数字。

     

    三、Sequences(序列)

     

    序列是具有非负整数索引的有序对象集合。

    1.string(字符串)

     有时人们会惊奇地发现字符串实际上是一种序列类型。但是如果仔细观察,字符串是一系列字符组合在一起。字符串由单引号、双引号或三引号括起来。注意在以下示例中,引号必须匹配,并且三重引号允许字符串跨越不同的行:

    a = "networking is fun"
    b = 'DevOps is fun too'
    c = """what about coding?
    ... super fun"""

     2.list(列表)

    列表是任意对象的序列。可以通过将对象括在方括号中来创建列表。和字符串一样,列表也是由以零开始的非零整数索引的。通过引用索引编号来取回列表的值:

    1 #!/usr/bin/env python
    2 vendors = ["Cisco", "Arista", "Juniper"]
    3 print(vendors[0])
    4 print(vendors[1])
    5 print(vendors[2])
    6 
    7 Cisco
    8 Arista
    9 Juniper

     

    3.Tupe(元组)

    元组类似于通过将值括在括号中创建的列表。与列表类似,元组中的值是通过引用其索引号来检索的。与列表不同,创建后无法修改值:

    >>> datacenters = ("HuaBei1","BeiJing1","TianJin1")
    >>> datacenters[0]
    'HuaBei1'
    >>> datacenters[1]
    'BeiJing1'
    >>> datacenters[2]
    'TianJin1'
    >>> datacenters[2] = "TianJin2"
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        datacenters[2] = "TianJin2"
    TypeError: 'tuple' object does not support item assignment
    >>> 

     4. 对于序列数据类型有些共性的操作如切片、打印序列的长度等

     1 #!/usr/bin/env python
     2 #string
     3 a = "netowrking is fun"
     4 b = "DevOps is fun too"
     5 c = """what about coding?
     6 ... super fun!"""
     7 print(a)
     8 print(b)
     9 print(c)
    10 #list
    11 vendors = ["cisco","Arista","Juniper"]
    12 print(vendors[0])
    13 print(vendors[1])
    14 print(vendors[2])
    15 #Tuples
    16 datacenters = ("SJC1","LAX1","SF01")
    17 print(datacenters[0])
    18 print(datacenters[1])
    19 print(datacenters[2])
    20 
    21 #slicing
    22 print(a[1])
    23 print(vendors[1])
    24 print(datacenters[1])
    25 print(a[0:2])
    26 print(vendors[0:2])
    27 print(datacenters[0:2])
    28 #len
    29 print(len(a))
    30 print(len(vendors))
    31 
    32 执行结果如下:
    33 netowrking is fun
    34 DevOps is fun too
    35 what about coding?
    36 ... super fun!
    37 cisco
    38 Arista
    39 Juniper
    40 SJC1
    41 LAX1
    42 SF01
    43 e
    44 Arista
    45 LAX1
    46 ne
    47 ['cisco', 'Arista']
    48 ('SJC1', 'LAX1')
    49 17
    50 3

     查看序列的最小值和最大值

    #!/usr/bin/env python
    b = [1,2,9,4,0]
    print(min(b))
    print(max(b))
    
    执行结果
    0
    9

     5. 毫无疑问,有各种方法只适用于字符串。值得注意的是,这些方法不会修改基础字符串数据本身,并且总是返回一个新的字符串。如果要使用新值,则需要捕获返回值并将其赋给其他变量:

    #!/usr/bin/env python
    a = "networking is fun"
    print(a.capitalize())
    print(a.upper())
    print(a)
    b = a.upper()
    print(b)
    print(a.split())
    print(a)
    b = a.split()
    print(b)
    
    执行结果如下:
    Networking is fun
    NETWORKING IS FUN
    networking is fun
    NETWORKING IS FUN
    ['networking', 'is', 'fun']
    networking is fun
    ['networking', 'is', 'fun']

     6. 列表的一些常见方法:

    列表是一个非常有用的结构,可以放入多个项目并对其进行迭代。例如,我们可以创建一个数据中心骨干交换机列表,并通过逐个迭代将相同的访问列表应用于所有交换机。由于列表的值可以在创建后修改(与元组不同),我们还可以在程序中扩展和对比现有列表:

    #!/usr/bin/env python
    routers = ['r1','r2','r3','r4','r5']
    print(routers)
    routers.append('r6')
    print(routers)
    routers.insert(2,'r100')
    print(routers)
    print(routers.pop(1))
    print(routers)

    执行结果如下:
    ['r1', 'r2', 'r3', 'r4', 'r5']
    ['r1', 'r2', 'r3', 'r4', 'r5', 'r6']
    ['r1', 'r2', 'r100', 'r3', 'r4', 'r5', 'r6']
    r2
    ['r1', 'r100', 'r3', 'r4', 'r5', 'r6']

     

     

     

     

     

     

     

关键字