概述
python数据类型主要分为以下七大类:
Numbers(数字)
Boolean(布尔)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Set(集合)
Python 的七个标准数据类型中:
不可变数据类型(4 个):Number(数字)、Boolean(布尔)、String(字符串)、Tuple(元组);
可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。
可变数据类型的内容可以随着函数的执行发生变化,而不可变数据类型的则不行。
问:如何判断一个变量的类型?
答:①使用type(变量名称)方法,返回变量的数据类型②isinstance(变量名称,数据类型),只能返回True或False(真的还是假的)
1.数字类型(Numbers)
数值类型就是我们日常生活中的数字
python的数字类型包括:
int(长整型)
float(浮点型)
complex(复数)
# 整型int,浮点型float a=1 b=1.1 print(a,b,type(a),type(b),isinstance(a,int)) #输出结果为 #1 1.1 <class 'int'> <class 'float'> True
2.布尔类型(Boolean)
布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)
其中布尔类型值可以相加,但一旦相加,类型就会转换为int类型
# 2.布尔型Boolean c=True d=False d=c+d print(type(c),type(d),d) #输出结果 #<class 'bool'> <class 'int'> 1
3.字符串类型(String)
在Python变量定义中,如果其赋值的内容是通过单引号或双引号引起来的内容就是字符串str类型。
字符串操作:
1.字符串索引
a[i]代表字符串a第i+1个位置的索引,a[-1]代表字符串a最后一个位置的索引
2.字符串截取
s=a[i:j],其中i,j可以不写,表示从位置i开始到位置j结束,其中截取的字符串不包括位置j
3.字符串拼接:“+”
4.字符串复用:“*“
# 3.字符串str f='我是小高' g=',你呢' print(f[0],f[-1],f[:3],f[1:-1],f+g,f*3) # 我 高 我是小 是小 我是小高,你呢 我是小高我是小高我是小高
4.列表类型(List)
python的列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套或者叫多维列表,可以用来表示多维数组)。
数组操作与字符串类型类似
多维数组初始化:
[…[[[0 for i in range(x)] for j in range(y)] for k in range(z)]…]
# 4.列表list e=[1,2,3,"a"] list=["b",'c'] print(type(e),e[2],e[2:-1],e+list,list*2) #<class 'list'> 3 [3] [1, 2, 3, 'a', 'b', 'c'] ['b', 'c', 'b', 'c'] # 3*2二维数组初始化 list2=[[0 for i in range(2)] for j in range(3)] #[[0, 0], [0, 0], [0, 0]]
5.元组类型(Tuple)
python的元组类似于list列表,元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
它支持字符,数字,字符串,列表,元组等所有类型
元组的取值、截取、连接、重复与列表一样
# 5.元组tuple a=1 b=True c='aaa' g=(1,2,3,4) print(type(g),g) g=(a,b,c,g) print(g) #<class 'tuple'> (1, 2, 3, 4) #(1,True,'aaa',(1, 2, 3, 4))
虽然tuple的元素不可改变,但它可以包含可变的对象(上述可变数据),比如list列表。
a=[1,2,3] tuple=(1,2,a) print(tuple) a[1]=4 print(tuple) #(1, 2, [1, 2, 3]) #(1, 2, [1, 4, 3])
6.集合类型(Set)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
基本功能是进行成员关系测试和删除重复元素
可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
不能往集合里边添加可变数据类型的数据
# 6.集合set h={'a',"b",1,(1,2),"hishis"} print(type(h),h) se=set() print(type(se)) # <class 'set'> {1, (1, 2), 'a', 'b', 'hishis'} # <class 'set'>
7.字典类型(Dictionary)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型;列表是有序的对象集合,字典是无序的对象集合;字典用"{ }"标识;字典由索引(key)和它对应的值value组成
字典取值,字典当中的元素是通过键来存取的,而不是通过偏移存取
键(key)必须使用不可变类型(数字、布尔、字符串、元组)
在同一个字典中,键(key)必须是唯一的
# 7.字典dict a=1 b=True c=[1,2,3] d=(1,2) e='aaa' i={"a":a,"b":b,"c":c,"d":d,"e":e,'i':"xiaogao"} print(type(i),i) #<class 'dict'> {'a': 1, 'b': True, 'c': [1, 2, 3], 'd': (1, 2), 'e': 'aaa', 'i': 'xiaogao'} i['a']=False#可以改变原有数据类型 print(i.keys()) print(i.values()) print(i) # dict_keys(['a', 'b', 'c', 'd', 'e', 'i']) # dict_values([False, True, [1, 2, 3], (1, 2), 'aaa', 'xiaogao']) # {'a': False, 'b': True, 'c': [1, 2, 3], 'd': (1, 2), 'e': 'aaa', 'i': 'xiaogao'}
类型比较
列表、元组、字典、集合的比较:
列表[ ](list):有序可改变集合,允许重复数据。
元组( )(tuple):有序不可改变集合,允许重复数据。
集合{ }(set):无序无索引(索引为键值)集合,无重复数据。
字典{ }(dictionary):无序,可变,有索引集合,无重复数据。
类型转换
属性 | 解释 |
int(x) | 将x转化为一个整数,向下取整 |
float(x) | 将x转化为一个浮点数 |
complex(x [,imge]) | 将x转化为一个复数 |
str(x) | 将x转化为一个字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(x) | 用来计算在字符串中的有效Python表达式,并返回一个对象,其实就是能计算字符串表达式,并得到结果 |
tuple(s) | 将序列s转化为一个元组 |
list(s) | 将序列s转化为一个列表 |
set(s) | 将序列s转化为可变集合,可用于列表去重 |
dict() | 创建一个字典 |
frozenset(s) | 将s转换为不可变集合 |
chr(x) | 将一个整数转化为其ASCIIi码对应的字符 |
dict() | 创建一个字典 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
ord(x) | 将一个字符转化为一个整数,该整数为x对应的ASCII码 |