一、Python3和Python2对比:
数据类型 | 子类型 | python3 | python2 |
---|---|---|---|
Number(数字) | int(整数) | 支持 | 支持 |
Number(数字) | long(长整型) | 不支持 | 支持 |
Number(数字) | Float(浮点) | 支持 | |
Number(数字) | complex(复数) | 不支持 | 支持 |
BOOL(布尔类型)) | True/False(注意大小写) | 支持 | 支持 |
String(字符串) | 支持 | 支持 | |
List(列表) | 支持 | 支持 | |
Tuple(元组) | 支持 | 支持 | |
Dictionary(字典) | 支持 | 支持 | |
Set(Hash集合) | 支持 | 支持 | |
自定义数据类型 | 支持 | 支持 |
二、Python(动态语言)和其他静态语言在变量上的区别:
- 动态语言是指变量类型可以随时改变的语言,例如Python;静态语言是指变量类型一经定义不可修改的语言,例如Java、C++
- C语言用Const定义常量,Java用final Class、interface、Enum、static final等定义常量,而Python没有专门定义常量的方法,我们通常默认把全大写的变量当做常量处理,例如
PI = 3.1415926
三、Python数据类型简单特性
Number数值类型
- python3中,只有一种整型类型int
- 内置的type()函数可以查询变量所指的对象类型
- 也可以使用内置的isinstance()函数来判断
- Python3中True的值是1,False的值是0
- 浮点只有单精度float,没有double双精度
String(字符串)
- Python中字符串的三种表示
- 使用单引号
- 使用双引号
- 使用三引号
- 字符串切片截取语法如下:
变量[起始下标:结束下标:步进] - 反斜杠可以转义特殊字符
- 常用字符串操作串操作函数:len(),replace(),index(),find(),split()等
将字符串 a='abcde’反转:a[::-1]
List(列表)
- List(列表)是一种有序集合,可以随时添加和删除其中元素
- 列表的元素可以不同
- 列表同样支持切片截取语法,如下:
变量[起始下标:结束下标:步进] - 列表格式[“xrw”,“xierongwang”,“xiexiaoyu”],[]里面的元素逗号隔开
- 索引值从0开始,-1代表末尾
- 使用(+)可以连接两个列表,(*)是重复操作
- 常用方法:type(List),len(List),List.append(),List.insert(index,xxx),List.pop(),List.pop(index),List[index]=xxx
Tuple(元组)
- Tuple与List相似,不同之处在于元组的元素不能修改
- 元组写在小括()里,元素之间用逗号隔开
- 元组中的数据类型也可以不用
- 列表同样支持切片
- 索引值从0开始,-1代表末尾
- 如果元组中的元素只有一个,那么写成(1,),不要写成(1),写成(1)会被当成int类型
a = ['A','B']
b = ('C','D',a)
b[2][0] = 'C'
问:能否修改b的值为(‘C’,‘D’,[‘C’,‘B’])?
答案是:可以。那么为什么呢,不是说元组不能修改吗?因为在这个问题中,元组b的元素a其实是指向存储数组a的内存空间了,b[2][0]其实是对数组a进行操作。也就是说,元组只能保证自己本身的元素不被修改,但不能保证他包含的元素所指向的内存空间的内容不被修改
Dictionary(字典)
- Dictionary是无序集合对象,元素是通过key-value键值对来存取的
- Dictionary是一种映射类型,用 {} 标识,它是一个无序的键值对集合
- key必须使用不可变类型、在同一个字典中,key必须是唯一的
- Dictionary的一些内置函数,例如clear(),keys(),values()等
- Dictionary方便我们使用查找和搜索功能
注意:创建空字典使用 {}
Set(集合)
- Set是一个无序不重复元素的序列,多用于需要去重的场景
- 可以使用大括号 {} 或者set() 函数创建集合
注意:创建一个空集合必须使用set() 而不是 {} ,因为 {} 是用来创建一个空字典 - 创建格式:
{value1,value2,value3,…}
或者
set(value) - 集合之间可以进行:-差集,&交集 |并集 ^反交集