在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对象。

【案例】

 >>> x = None
>>> print(type(x))
<class 'NoneType'>
>>>

(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(列表)

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

 #!/usr/bin/env python
vendors = ["Cisco", "Arista", "Juniper"]
print(vendors[0])
print(vendors[1])
print(vendors[2]) Cisco
Arista
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. 对于序列数据类型有些共性的操作如切片、打印序列的长度等

 #!/usr/bin/env python
#string
a = "netowrking is fun"
b = "DevOps is fun too"
c = """what about coding?
... super fun!"""
print(a)
print(b)
print(c)
#list
vendors = ["cisco","Arista","Juniper"]
print(vendors[0])
print(vendors[1])
print(vendors[2])
#Tuples
datacenters = ("SJC1","LAX1","SF01")
print(datacenters[0])
print(datacenters[1])
print(datacenters[2]) #slicing
print(a[1])
print(vendors[1])
print(datacenters[1])
print(a[0:2])
print(vendors[0:2])
print(datacenters[0:2])
#len
print(len(a))
print(len(vendors)) 执行结果如下:
netowrking is fun
DevOps is fun too
what about coding?
... super fun!
cisco
Arista
Juniper
SJC1
LAX1
SF01
e
Arista
LAX1
ne
['cisco', 'Arista']
('SJC1', 'LAX1')
17
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']

4. Mapping(映射)

python提供了一种称为dictionary(字典)的映射类型。字典是也可以看作一个“匮乏”的的数据库,因为它包含可以用键索引的对象。在其他语言中,这通常被称为关联数组或哈希表。字典是一个强大的类型,因为您可以通过一个可读的键引用该对象。对象也可以是另一种数据类型,如列表。可以使用大括号创建字典:

#!/usr/bin/env python
datacenter1 = {'spines' : ['r1','r2','r3','r4']}
datacenter1['leafs'] = ['','l2','l3','l4']
print(datacenter1)
print(datacenter1['spines'])
print(datacenter1['leafs']) 执行结果如下:
{'spines': ['r1', 'r2', 'r3', 'r4'], 'leafs': ['11', 'l2', 'l3', 'l4']}
['r1', 'r2', 'r3', 'r4']
['11', 'l2', 'l3', 'l4']

五、Sets(集合)

  

  与列表和元组不同,集合是无序的,不能用数字索引。但集合也有一个非常实用的功能即集合的元素永远不会重复。想象一下,如果你有一个IP列表,你需要把它放到一个访问列表中,这个IP列表唯一的问题是它们是重复的。现在,考虑如何使用循环对唯一项进行排序,使用集合允许您使用一行代码排除重复项。创建一个或多个集合后,可以使用并集(union)、交集(intersection)和差异(differences)将它们与其他集合进行比较。

  

#!/usr/bin/env python
a = "hello"
print(set(a))
b = set([1,1,2,2,3,3,4,4])
print(b)
b.add(5)
print(b)
b.update(['a','a','b','b'])
print(b)
a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print(a.intersection(b))
print(a.union(b))
执行后的结果如下:
{'l', 'e', 'o', 'h'}
{1, 2, 3, 4}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 'b', 'a'}
{4, 5}
{1, 2, 3, 4, 5, 6, 7, 8}

  

小飞侠带你精通Python网络编程系列04-Python内置的数据类型的更多相关文章

  1. 小飞侠带你精通Python网络编程系列03-Python版本的选择

    1. 目前Python有两个主要版本Python2.X和Python3.X 2. Python2.X最后一个版本是2.7,目前(2018年10月21日)Python3.X最新版本为3.7 3. 很不幸 ...

  2. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  3. python网络编程系列

    计算机基础 网络基础 套接字 socket模块 TCP协议和UDP协议 struct 模块简介 struct 模块解决 TCP黏包问题 socket 客户端的认证 socketserver模块初识 客 ...

  4. python 网络编程要点

    From http://www.zhihu.com/question/19854853 Python网络编程是一个很大的范畴,个人感觉需要掌握的点有:1. 如何使用Python来创建socket, 如 ...

  5. 28、Python网络编程

    一.基于TCP协议的socket套接字编程 1.套接字工作流程 先从服务器端说起.服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客 ...

  6. 图解Python网络编程

    返回目录 本篇索引 (1)基本原理 (2)socket模块 (3)select模块 (4)asyncore模块 (5)asynchat模块 (6)socketserver模块 (1)基本原理 本篇指的 ...

  7. Python网络编程之网络基础

    Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...

  8. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...

  9. Python网络编程--Echo服务

    Python网络编程--Echo服务 学习网络编程必须要练习的三个小项目就是Echo服务,Chat服务和Proxy服务.在接下来的几篇文章会详细介绍. 今天就来介绍Echo服务,Echo服务是最基本的 ...

随机推荐

  1. docker更改默认仓库地址

    zq@ubuntu:~$ docker pull -h Flag shorthand -h has been deprecated, please use --help Usage: docker p ...

  2. JXOJ(基于UOJ)部署日志

    JXOJ部署日志 前些日子协助cyc.llf两位奆老部署了JXOJ,为方便日后维护我校OJ的同学,写篇日志做记录以日后查看. 一.准备: ​ 在尝试了多个不同OJ之后,我们最终选择了Universal ...

  3. 关于 Expression is not assignable 错误

    1.在 Build Phases中导入  UIKit.framework 2.在pch中导入头文件 #import <UIKit/UIKit.h> 3.写一个分类 即可解决 贴出分类代码 ...

  4. 从Scratch到Python之角色与造型

    从Scratch到Python之角色与造型 继续讲解通过python turtle从积木编程过渡到代码编程的技巧.角色是scratch中很重要的主角,每个角色可以更换不同的造型或者音效,堆叠不同的积木 ...

  5. pycharm安装配置

    激活 教程https://blog.csdn.net/u014044812/article/details/78727496 推荐修改host文件的方法 配置 https://blog.csdn.ne ...

  6. Asp.net core Identity + identity server + angular 学习笔记 (第二篇)

    先纠正一下第一篇的的错误. 在 Login.cshtml 和 Login.cshtml.cs 里, 本来应该是 Register 我却写成 Login . cshtml 修改部分 <form a ...

  7. react props与render成员函数

    props是组件固有的属性集合,其数据由外部传入,一般在整个组件的生命周期中都是只读的,React的API顶层设计也决定了这一点.属性初值通常由React.createElement函数或者JSX中标 ...

  8. Windows Server 2012 R2 英文版安装中文语言包教程

    Windows Server 是云操作系统的主要组成部分. 有了 Windows Server,再加上云操作系统内的开发者技术,您就可以构建现代业务应用程序. 现代业务应用程序通常涵盖内部部署资源和公 ...

  9. pgRouting新增扩展

    环境依赖:postgresql cgal boost perl 环境变量: boost环境变量 CGAL环境变量 postgresql环境变量 1.新建C++ 空项目 2,添加common引用,更改配 ...

  10. WebAPI调用笔记

    前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于Http协议的Get.Po ...