Python数据类型简介
Python数据类型简介
python中的数据类型分别有:int、long、float、complex、字符串、列表、元组、集合、字典、布尔类型
int与long
在python3.x之后已经不区分int和long了,统一使用int
int的默认大小取决于你的CPU的体系
例如:
32位系统,整数的默认数据类型为'Int32'
64位系统,整数的默认数据类型为'Int64'
如果定义的int类型的值超过了上述限制,python会自动更改其类型并分配更多内存以处理此最小值/最大值的增加
Int8:[-128,127]
Int16:[-32768,32767]
Int32:[-2147483648,2147483647]
Int64:[-9223372036854775808,9223372036854775807]
Int128:[-170141183460469231731687303715884105728,170141183460469231731687303715884105727]
UInt8:[0,255]
UInt16:[0,65535]
UInt32:[0,4294967295]
UInt64:[0,18446744073709551615]
UInt128:[0,340282366920938938463463374607431768211455]
>>> x = 10
>>> type(x)
<class 'int'>
float类型
与其他语言类似,float表示浮点型
浮点数与定点数是相对的,小数在存储过程中如果小数点发生移动,就称为浮点数;如果小数点不动,就称为定点数
python中的小数有两种书写方式,十进制形式与指数形式
十进制形式
就是我们平时看到的小数的形式,例如3.1415926
定义小数时必须包含一个小数点,否则会被python当做整数处理
>>> x = 3.1415926
>>> type(x)
<class 'float'>
指数形式
python的小数的指数形式的写法为:
aEn 或者 aen
a为尾数部分,是一个十进制的数;n为指数部分,是一个十进制的整数;e或E是固定的字符,用于分割尾数部分和指数部分。整个表达式等价于a*10n
3.1E5 = 3.1 * 105
2.5E-2 = 2.5 * 10-2
注意: 只要写成指数形式就是小数,即使它的最终值看起来是一个整数,比如14E3等价于14000,但14E3是一个小数
>>> x = 0.0000000000000000000000000000008
>>> print(x)
8e-31
>>> type(x)
<class 'float'>
>>> x = 14E3
>>> print(x)
14000.0
>>> type(x)
<class 'float'>
complex类型
复数,是python的内置类型
复数由实部(real)和虚部(imag)构成,在python中,复数的虚部以j或J作为后缀,具体格式为:a + bJ
>>> x = 13 + 0.3j
>>> y = 6 + 1.5j
>>> type(x)
<class 'complex'>
>>> type(y)
<class 'complex'>
>>> print(x,y)
(13+0.3j) (6+1.5j)
#可以对复数进行简单的计算
>>> print(x + y)
(19+1.8j)
>>> print(x * y)
(77.55+21.3j)
字符串类型
字符串声明
字符串的声明方式一共有三种:单引号、双引号、三引号
>>> str1 = 'hello'
>>> str2 = "helllo"
>>> str3 = '''hellllo'''
>>> str4 = """helllllo"""
>>> print (str1)
hello
>>> print (str2)
helllo
>>> print (str3)
hellllo
>>> print (str4)
helllllo
>>> type(str1)
<class 'str'>
>>> type(str2)
<class 'str'>
>>> type(str3)
<class 'str'>
>>> type(str4)
<class 'str'>
字符串骚操作
连接
符号 +
>>> str1 = "杜建国"
>>> str2 = "真帅!"
>>> print(str1+str2)
杜建国真帅!
复制
符号 *
>>> str1 = "NB"
>>> num = 3
>>> print(str1 * num)
NBNBNB
索引
符号 []
>>> str1 = "abcdefg"
>>> print(str1[3])
d
切片
符号 [::]
>>> str1 = "abcdefghijk"
>>> print (str1)
abcdefghijk
#取字符串索引0-3的内容(顾头不顾尾,不包含索引3的对象)
>>> print(str1[:3])
abc
#取字符串索引0-5的内容,每2个索引取一次
>>> print(str1[:5:2])
ace
#取字符串索引从3开始到结尾的内容
>>> print(str1[3:])
defghijk
#取字符串倒数第四开始到结尾的内容
>>> print(str1[-4:])
hijk
列表类型
列表是一个有序且可更改的集合,用方括号编写
其元素可以是数字、字符串等基本类型,也可以是列表、元组、字典等集合对象
列表有索引,可以以索引的方式访问列表
>>> list1 = ["张三","李四","王二狗"]
>>> type(list1)
<class 'list'>
>>> print(list)
<class 'list'>
>>> print(list1)
['张三', '李四', '王二狗']
可以对列表的字段进行增删改查操作
1、增
>>> print(list1)
['张三', '李四', '王二狗']
#起始位置和结束位置必须一致
>>> list1[0:0] = ["谁啊"]
>>> print(list1)
['谁啊', '张三', '李四', '王二狗']
2、删
1、删除单个
>>> list1 = ["1","2","3","4","5"]
>>> print(list1)
['1', '2', '3', '4', '5']
>>> del list1[1]
>>> print(list1)
['1', '3', '4', '5']
2、删除多个
>>> list1 = ["1","2","3","4","5"]
>>> del list1[0:4]
>>> print(list1)
['5']
3、删除奇数位
>>> list1 = ["1","2","3","4","5"]
>>> del list1[::2]
>>> print(list1)
['2', '4']
4、删除偶数位
>>> list1 = ["1","2","3","4","5"]
>>> del list1[1::2]
>>> print(list1)
['1', '3', '5']
3、改
1、修改单个元素
>>> list1 = ["张三","李四","王二狗"]
>>> list1[2] = "当归"
>>> print(list1)
['张三', '李四', '当归']
2、修改多个元素
>>> list1 = ["张三","李四","王二狗"]
>>> list1[0:1] = ["景天","徐长卿"]
>>> print(list1)
['景天', '徐长卿', '李四', '王二狗']
4、查
获取单个:list1[0],获取第一个元素
获取单个:list1[-1],获取倒数第一个元素
获取多个:list1[0:3],获取下标0开始到下标3结束的元素;
list1[:2],从第一个元素获取到下标为2的元素
list1[2:],从下标为2的元素获取到最后一个元素
>>> print(list1)
['景天', '徐长卿', '李四', '王二狗']
>>> print(list1[0])
景天
>>> print(list1[-1])
王二狗
>>> print(list1[0:3])
['景天', '徐长卿', '李四']
>>> print(list1[:2])
['景天', '徐长卿']
>>> print(list1[2:])
['李四', '王二狗']
5、遍历
使用for循环,遍历list列表的元素
>>> print(list1)
['景天', '徐长卿', '李四', '王二狗']
>>> for name in list1:
... print(name)
...
景天
徐长卿
李四
王二狗
6、list运算
符号 | list运算 |
---|---|
+ | 两个list列表进行相加 |
* | list列表复制 |
in | 检查list列表是否包含该元素 |
not in | 检查list列表是否不包含改元素 |
7、list函数
符号 | list函数 | 格式 |
---|---|---|
len() | 求list列表长度 | len(list) |
min() | 求list列表中最小元素 | min(list) |
max() | 求list列表中最大元素 | max(list) |
8、list方法
PS:list方法使用规则:
列表名.方法()
例如:list1.append("王建国")
list方法 | 说明 |
---|---|
.append(元素) | 向列表最后追加一个元素 |
.extend([元素1,元素2]) | 向列表最后追加多个元素 |
.insert(下标,元素) | 向指定的下标位置插入元素 |
.pop(下标) | 移除指定下标的元素,如果没有指定下标,默认移除最后一个元素 |
.remove(元素) | 删除指定元素 |
.clear() | 清空list列表 |
.index(元素) | 获取指定元素在list列表中第一次出现的下标 |
.count(元素) | 统计元素在list列表中出现的次数 |
.reverse() | 反转list列表 |
.sort() | 排序,默认升序,降序添加参数reverse=True |
元组类型
是一个不可变序列,有索引
使用()创建元组,多个值之间用,隔开
()可以省略不写,但是当元组中只有一个元素时必须使用
>>> tuple1 = ("ww","ee","rr","dd","ff")
>>> type(tuple1)
<class 'tuple'>
>>> print(tuple1)
('ww', 'ee', 'rr', 'dd', 'ff')
>>> print(tuple1[0:3])
('ww', 'ee', 'rr')
集合类型
集合是无序无索引的集合,使用{}创建集合
set方法 | 说明 |
---|---|
.add() | 添加元素 |
.pop() | 随机删除元素 |
.remove(元素) | 删除指定元素 |
.clear() | 清空集合 |
>>> set1 = {"张三","李四","王二狗"}
>>> type(set1)
<class 'set'>
>>> print(set1)
{'李四', '王二狗', '张三'}
#添加元素
>>> set1.add("小张")
>>> print(set1)
{'李四', '小张', '王二狗', '张三'}
#随机删除元素
>>> set1.pop()
'李四'
>>> print(set1)
{'小张', '王二狗', '张三'}
#删除指定元素
>>> set1.remove("小张")
>>> print(set1)
{'王二狗', '张三'}
#清空集合
>>> set1.clear()
>>> print(set1)
set()
字典类型
以“键值对”的形式存放数据,key不能重复
字典的key可以是任何一种不可变类型,例如字符串、元组等
>>> dic1 = {"name": "张三","age": 16,"sex": "女"}
>>> type(dic1)
<class 'dict'>
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女'}
可以对字典的键值对进行增删改查的操作
1、增
#对不存在的key直接赋值
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女'}
>>> dic1["num"] = 3
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女', 'num': 3}
2、删
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女', 'num': 3}
>>> del dic1["num"]
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女'}
3、改
#对已有key直接赋值
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女'}
>>> dic1["name"] = "相泽南"
>>> print(dic1)
{'name': '相泽南', 'age': 16, 'sex': '女'}
4、查
>>> print(dic1)
{'name': '张三', 'age': 16, 'sex': '女'}
>>> dic1["name"] = "相泽南"
>>> print(dic1)
{'name': '相泽南', 'age': 16, 'sex': '女'}
>>> print(dic1.get("age"))
16
>>> print(dic1["name"])
dictionary方法 | 说明 |
---|---|
.popitem() | 随机删除一个 |
.pop(key) | 删除指定的key |
.clear() | 删除所有的 |
.keys() | 获取所有的键 |
.values() | 获取所有的值 |
.ltems() | 获取所有的键值对 |
布尔类型
True & False