Python 的数据分为五种类型:
- Number(数字)
- String(字符串)
- Container(容器)
- Bool(布尔)
- None(空值)
其中容器又分为:列表,元组、集合、字典。集合又可细分为双向链表、排序字典和计数器。
上述分类中,数字、字符串、元组是不可更改只可复制的。下面只讲解这些数据类型的简单应用,更详细的操作请进一步搜索学习。
一、Number(数字)
数字又具体分为整型,浮点数,复数,示例如下:
#整型
age = 20
print('现在的年龄是:%d,
十年前的年龄是:%d'%(age, age-10))
#浮点数
a = 2/3
print(a)
输出如下:
现在的年龄是:20,
十年前的年龄是:10
0.6666666666666666
二、String(字符串)
示例如下:
# 字符串学习
testStr1 = 'Python语言'
testStr2 = '在大数据分析时代很重要。'
testStr3 = '人生苦短,我用Python'
testStr4 = testStr1 + testStr2 + testStr3
print('第一个字符串是:%s,
第二个字符串是:%s,
第三个字符串是:%s,
合并后是:%s'%(testStr1,testStr2,testStr3,testStr4))
输出如下:
第一个字符串是:Python语言,
第二个字符串是:在大数据分析时代很重要,
第三个字符串是:人生苦短,我用Python,
合并后是:Python语言在大数据分析时代很重要。人生苦短,我用Python
三、Container(容器)
容器可以细分为四个类型,列表 List,元组 Tuple,集合 Sets,字典 Dictionary。
容器的 4 个操作:增加,删除,查询,修改。
3.1 容器之列表List []
nameList = ['唐僧','孙悟空','猪八戒']
print('列表是:', nameList)
print('列表长度:', len(nameList))
#1 增加
nameList.append('沙僧')
print('增加一个取经人:', nameList[len(nameList)-1])
print('现在的取经队伍是:', nameList)
#2 删除
del nameList[0]
print('被妖怪抓走后的取经队伍:', nameList)
#3 查询,使用下标索引查询访问
name1 = nameList[2]
print('现在队伍中第三个人是:', name1)
#4 修改
nameList[2] = '白龙马'
name1 = nameList[2]
print('修改后现在队伍中第三个人是:', name1)
输出如下:
列表是: ['唐僧', '孙悟空', '猪八戒']
列表长度: 3
增加一个取经人: 沙僧
现在的取经队伍是: ['唐僧', '孙悟空', '猪八戒', '沙僧']
被妖怪抓走后的取经队伍: ['孙悟空', '猪八戒', '沙僧']
现在队伍中第三个人是: 沙僧
修改后现在队伍中第三个人是: 白龙马
3.2 容器之元组Tuple ()
特点是无法修改和删除其中的元素。
westTuple = ('唐僧', '孙悟空', '猪八戒', '沙和尚', '白龙马')
print('元组是取经队伍队员:', westTuple)
name2 = westTuple[0]
print('取经队伍第一名队员:', westTuple[0])
del westTuple[0]
print('取经队伍第一名队员:', westTuple[0])
输出如下:
元组是取经队伍队员: ('唐僧', '孙悟空', '猪八戒', '沙和尚', '白龙马')
取经队伍第一名队员: 唐僧
Traceback (most recent call last):
File "E: echnologyPython 3.9.1 est.py", line 6, in <module>
del westTuple[0]
TypeError: 'tuple' object doesn't support item deletion
可以看出,在删除那步就报错了,因为禁止删除元祖中的元素。
3.3 容器之集合Sets {}
Sets 是没有重复元素的容器。有三个特征:
- 确定性(集合中的元素必须是确定的)
- 互异性(集合中的元素互不相同。例如:集合A={1,a},则a不能等于1)
- 无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。
westSets = set()
#使用 update()增加元素
westSets.update(['唐僧', '孙悟空', '猪八戒', '沙和尚', '白龙马', '沙和尚', '白龙马'])
print('取经队伍队员集合是:', westSets)
#使用discard删除
westSets.discard('唐僧')
print('现在取经队伍队员集合是:', westSets)
#使用in查找
bFind1 = '孙悟空' in westSets
bFind2 = '唐僧' in westSets
print('有孙悟空:', bFind1)
print('有唐僧:', bFind2)
#修改 先删除后修改
westSets.discard('白龙马')
westSets.update('黑风熊')
print(westSets)
westSets.update(['黑风熊'])
print(westSets)
输出如下:
取经队伍队员集合是: {'唐僧', '沙和尚', '白龙马', '孙悟空', '猪八戒'}
现在取经队伍队员集合是: {'沙和尚', '白龙马', '孙悟空', '猪八戒'}
有孙悟空: True
有唐僧: False
{'沙和尚', '风', '孙悟空', '熊', '猪八戒', '黑'}
{'沙和尚', '风', '孙悟空', '黑风熊', '熊', '猪八戒', '黑'}
添加集合元素是,不能缺少 [],否则就是单一添加。
3.4 容器之字典 {:,:}
字典是存储映射关系的容器。键值对中的 key 是唯一的,valve 是不可变的,数值,字符串或元组。
#创建字典
westDic={'001':['唐僧',26,'领导','啰嗦不负责任','功德神'],
'002':['孙悟空',600,'核心骨干','敢干猴急','斗战胜佛'],
'003':['猪八戒',500,'秘书','贪吃好色','净坛使者'],
'004':['沙和尚',500,'干事','佛性淡定','金身罗汉']
}
print('取经人:', westDic)
#增加
westDic['005'] = ['白龙马',300,'官二代','度日子','八部天龙']
print('关系户:', westDic)
#删除
del westDic['003']
print('精简机构:', westDic)
#查询
valueList = westDic['001']
print('领导是:',valueList)
#修改,和增加字典元素一样
print('修改前,第二名信息:',westDic['002'])
westDic['002']=['孙悟空',600,'宇宙第一骨干','敢干猴急','斗战胜佛']
print('修改后,第二名信息:', westDic['002'])
输出如下:
取经人: {'001': ['唐僧', 26, '领导', '啰嗦不负责任', '功德神'], '002': ['孙悟空', 600, '核心骨干', '敢干猴急', '斗战胜佛'], '003': ['猪八戒', 500, '秘书', '贪吃好色', '净坛使者'], '004': ['沙和尚', 500, '干事', '佛性淡定', '金身罗汉']}
关系户: {'001': ['唐僧', 26, '领导', '啰嗦不负责任', '功德神'], '002': ['孙悟空', 600, '核心骨干', '敢干猴急', '斗战胜佛'], '003': ['猪八戒', 500, '秘书', '贪吃好色', '净坛使者'], '004': ['沙和尚', 500, '干事', '佛性淡定', '金身罗汉'], '005': ['白龙马', 300, '官二代', '度日子', '八部天龙']}
精简机构: {'001': ['唐僧', 26, '领导', '啰嗦不负责任', '功德神'], '002': ['孙悟空', 600, '核心骨干', '敢干猴急', '斗战胜佛'], '004': ['沙和尚', 500, '干事', '佛性淡定', '金身罗汉'], '005': ['白龙马', 300, '官二代', '度日子', '八部天龙']}
领导是: ['唐僧', 26, '领导', '啰嗦不负责任', '功德神']
修改前,第二名信息: ['孙悟空', 600, '核心骨干', '敢干猴急', '斗战胜佛']
修改后,第二名信息: ['孙悟空', 600, '宇宙第一骨干', '敢干猴急', '斗战胜佛']
字典每个 value 都是一个列表。
四、Bool(布尔)
True、False 一般和条件判断一起,是区分大小写的。
if True:
print("打印")
if False:
print("不打印")
输出如下:
打印
五、None(空值)
数据处理时,python 中是 None,对空值需要特殊处理。
六、Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x [,base]) | 将x转换为一个整数 |
---|---|
long(x [,base] ) | 将x转换为一个长整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x)] | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str)] | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s)] | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组。 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
参考: