前言
在 Python 中的数据类型总共分为:数值型,字符型,容器型 三大类,其中布尔类型也属于数值型的一种(0:True 1:False)
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
一、数值型
- 整型
a=361
b=-361
c=0
d=66666
# 整型 --> int()
Python3 支持 int、float、bool、complex(复数)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- 浮点型
a=3.61
b=3.14e-6
c=0.0
# 浮点型 --> float()
- 布尔型
和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和 False(假)。
在Python中,数字 “0” 可以表示布尔值 “True” ,数字 “1” 可以表示布尔值 “False”
- 复数
复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
a=3+6j
b=3.0+6.0j
c=6j
# 复数 --> complex([real[, imag]])
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
二、字符型
字符型也叫做字符串
在Python中是没有 字符类型 的,单双引号也没有什么区别和特大意义,它们都代表字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Runoob"
Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量名[头下标:尾下标]
Python中三引号(" " ")允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
st = '''this is string
this is pythod string
this is string'''
print (st);
三、容器型
-
列表
列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
PS:Python 中的列表(List)在其他编程语言中也叫做 数组
列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 'Runoob', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"] list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
- 访问列表中的值
与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。
- 访问列表中的值
list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list1[0] )
print( list1[1] )
print( list2[2] )
索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list1[-1] )
print( list1[-2] )
print( list1[-3] )
使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,如下所示:
常用方法
方法 | 描述 |
---|---|
len(列表名) | 列表元素个数,也可叫做获取当前列表的长度 |
max(列表名) | 返回列表元素最大值 |
min(列表名) | 返回列表元素最小值 |
list(元组名) | 将元组转换为列表 |
count(列表值) | 统计某个元素在列表中出现的次数 |
append(列表值) | 在列表末尾添加新的对象 |
pop(列表值) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
remove(列表值) | 移除列表中某个值的第一个匹配项 |
reverse(列表值) | 反向列表中元素 |
sort(列表值) | 对原列表进行排序 |
clear(列表值) | 清空列表 |
index(列表值) | 从列表中找出某个值第一个匹配项的索引位置 |
insert(列表值) | 将对象插入列表 |
extend(列表值) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
-
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
>>> tup1 = ('Google', 'Runoob', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d" # 不需要括号也可以
>>> type(tup3)
<class 'tuple'>
在 Python 中元组,是不具备任何可以改变值的操作,只有查看这个操作,而关于查看这个操作是与列表中的访问是一样的,都是通过下标索引来访问查看。
PS:所谓元组的不可变指的是元组所指向的内存中的内容不可变。而重新赋值的元组 ,是绑定到新的对象了,不是修改了原来的对象。
-
字典
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的# 使用大括号 {} 来创建空字典 emptyDict = {} # 使用函数 dict() 重建字典(默认创建一个空字典): emptyDict = dict()
- 访问字典里的值
把相应的键放入到方括号中
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age'])
如果用字典里没有的键访问数据,会输出错误
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Alice']: ", dict['Alice'])
如果不想报错,可以给字典设置默认值。即当键存在时,返回键对应的值;键不存在时,返回默认值:
>>> dic = {'a' : 1} # 此时访问 dic['b'] 会报错,因为dic不存在键 ‘b’ # 设置默认值 >>> dic.setdefault('b', 2) >>> dic['b'] >>> 2
-
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict['Age'] = 8 # 更新 Age dict['School'] = "菜鸟教程" # 添加信息 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])
-
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令。dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键 'Name' dict.clear() # 清空字典 del dict # 删除字典
-
集合
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...} #或者 a=set()
- 常用方法
方法 | 描述 |
---|---|
add (x) | 将元素 x 添加到集合中,如果元素已存在,则不进行任何操作。 |
update (x) | 将元素 x 添加元素到集合中,且参数可以是列表,元组,字典等,x 可以有多个,用逗号分开。 |
remove (x) | 将元素 x 从集合中移除,如果元素不存在,则会发生错误。 |
discard (x) | 将元素 x 从集合中移除,且如果元素不存在,不会发生错误。 |
pop ( ) | 随机删除集合中的一个元素 |
语法格式: x in s
判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
注意点
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。