1、引子python
一、什么是数据?git
x=10,10是咱们要存储的数据app
二、为什么数据要分不一样的类型ide
数据是用来表示状态的,不一样的状态就应该用不一样的类型的数据去表示学习
三、数据类型的分类this
数字(×××,长×××,浮点型,复数)编码
字符串 (在介绍字符编码时介绍字节bytes类型)spa
列表orm
元组blog
字典
集合
4 按照如下几个点展开数据类型的学习
1)基本使用
(1)用途
(2)定义方式
(3)经常使用操做+内置的方法
2)该类型总结
(1)存一个值or存多个值
只能存一个值
能够存多个值,值均可以是什么类型
(2)有序or无序
(3)可变or不可变
!!!可变:值变,id不变。可变==不可hash
!!!不可变:值变,id就变。不可变==可hash
2、数字
一、整型int
做用:年纪,等级,×××号,qq号等整型数字相关
定义:age=10 #本质age=int(10)
二、浮点型float
做用:薪资,身高,体重,体质参数等浮点数相关
定义:alary=3000.3 #本质salary=float(3000.3)
三、二进制,十进制,八进制,十六进制
参考连接:https://blog.51cto.com/10630401/2049374
四、其余数字类型(了解)
1)长××× 在python2中(python3中没有长×××的概念) num=2L
2)复数 x=1-2j
五、数字类型小结
1)存一个值
2)有序
3)!!!不可变:值变,id就变。不可变==可hash
3、字符串
一、做用:名字,性别,国籍,地址等描述信息
二、定义:在单引号\双引号\三引号内,由一串字符组成
name='egon'
三、经常使用操做+内置的方法:
1)优先掌握的操做:
(1)按索引取值(正向取+反向取):只能取(不可修改,取出的字符仍是字符串类型,空格也占一个索引)
str[开头的索引值:结尾的索引值:步长]
(2)切片(顾头不顾尾,步长)
(3)长度len (等同于调用这个方法str.__len__())
(4)成员运算in和not in(结果是布尔值)
(5)移除空白strip(只能移除字符串左右两端的空白格)
平常用法:password=input('>>: ').strip()
(6)切分split
默认是空格符作切割符号,不指定切割次数的话,整个字符串都会切
rsplit是按照倒序的方式切割
(7)循环
逐个取出字符串中的字符、range(头,尾,步长)
2)须要掌握的操做
(1)strip,lstrip,rstrip
strip默认是移除空白,非空格的须要指定;lstrip是移除左边的;rstrip是移除右边的;
(2)lower,upper
lower是把字符串中的大写字母转换成小写,upper是小写换成大写
(3)startswith,endswith
判断字符串是不是以什么开头或者结尾,结果是布尔值
(4)format的三种玩法
占位符是{}
print('this is {} this is a {}'.format('test','pen'))
(5)split,rsplit
(6)join
只有在列表内的元素全是字符串类型,才能用join拼接
用split切割完之后是一个列表,每一个元素都是字符串,能够采用join拼接
info='root:x:0:0' l=info.split(':') print(l) print(':'.join(l))
(7)replace
(8)isdigit
3)其余操做(了解便可)
(1)find,rfind,index,rindex,count
(2)center,ljust,rjust,zfill
(3)expandtabs
(4)captalize,swapcase,title
(5)is数字系列
(6)is其余
四、字符串类型小结
1)存一个值
2)有序
3) !!!不可变:值变,id就变。不可变==可hash
4、列表
一、做用:多个装备,多个爱好,多门课程,多个女友等
二、定义:[]内能够有多个任意类型的值,逗号分隔
变量l= list('字符串')
l=list('hello')
print(l)
['h', 'e', 'l', 'l', 'o']
三、经常使用操做+内置方法
1)优先掌握的操做:
(1)按索引存取值(正向存取+反向存取):便可存也能够取
(2)切片(顾头不顾尾,步长)
(3)长度
(4)成员运算in和not in
(5)追加append (会追加在最后一个索引的后边)
(6)删除:直接删除del、remove;删除并拿到结果pop;
del list[索引]
list.remove('列表中的元素')
list.pop(索引) 能打印出删除的那个元素
(7)循环
循环取出列表中的元素
l1=['a','b','c','d'] for i in range(len(l1)): print(l1[i])
2)须要掌握的操做:
(1)insert(插到哪一个索引值前面,插入的值)
(2)clear() python2 没有这个方法
(3)copy() python2 没有这个方法
(4)count() 统计列表中的某个元素的次数
(5)extend() 列表的拼接扩展,(里面能够写另外一个列表名或者一个字符串)
(6)index(元素) 查找某个元素的索引值
(7)reverse() 把列表颠倒过来
(8)sort() 排序 默认的是从小到大;list.sort(reverse=True)能够实现从大到小
3)其余操做(了解便可)
四、列表类型总结
1)能够存多个值,值均可以是任意类型
2)有序
3)!!!可变:值变,id不变。可变==不可hash
5、元组
一、做用:存多个值,对比列表来讲,元组不可变(是能够当作字典的key的),主要是用来读
二、定义:与列表类型比,只不过[]换成()
变量名=tuple(字符串)
age=tuple('hello')
print(age,type(age)
三、经常使用操做+内置方法
1)优先掌握的操做:
(1)按索引取值(正向取+反向取):只能取
(2)切片(顾头不顾尾,步长)
(3)长度
(4)成员运算in和not in
(5)循环
2)须要掌握的操做
(1)index
(2)count
四、元组类型总结
1)能够存多个值,值均可以是任意类型
2)有序
3)!!!不可变:值变,id就变。不可变==可hash
6、字典
一、做用:存多个值,key-value存取,取值速度快
二、定义:key必须是不可变类型,value能够是任意类型
info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})
或info=dict(name='egon',age=18,sex='male')
或info=dict([['name','egon'],('age',18)])
或{}.fromkeys(('name','age','sex'),None)
三、经常使用操做+内置方法
1)优先掌握的操做:
(1)按key存取值:可存可取
(2)长度len (统计键值对的个数)
(3)成员运算in和not in (结果是布尔值)
(4)删除
d.pop('a') #输出的是删除的key对应的value值
d.popitem() #输出的是删除的key对应的key:value键值对
(5)键keys(),值values(),键值对items()
(6)循环
info = dict(name='egon', age=18, sex='male') for key in info: print(info[key]) for items in info: print(items)
四、字典类型总结
1)能够存多个值,值均可以是任意类型
2)无序
3)!!!不可变:值变,id就变。不可变==可hash
7、集合 set
一、做用:去重,关系运算
二、定义:能够包含多个元素,用逗号分割
s=set({元素需为不可变类型})
集合的元素遵循三个原则:
一、每一个元素必须是不可变类型(可hash,可做为字典的key)
二、没有重复的元素
三、无序
PS:注意集合的目的是将不一样的值存放到一块儿,不一样的集合间用来作关系运算,无需纠结于集合中单个值
三、经常使用操做+内置的方法:
1)优先掌握的操做:
(1)长度len
(2)成员运算in和not in
(3)|合集 intersection
(4)&交集 union
(5)-差集 symmetric_difference
(6)^对称差集 difference
(7)==
(8)父集:>,>= issuperset
(9)子集:<,<= issubset
(10)循环
2)了解的操做:
(1)集合1.difference_update(集合2)
s1.difference_update(s2) #s1=s1.difference(s2)
(2)集合1.pop() 默认删除的是集合的最后一个元素
(3)集合1.add() 默认添加的元素是到集合的最后面
(4)删除集合元素
discard() 删除的元素不存在不会报错
remove() 删除的元素不存在则报错
(5)集合1.isdisjoint(集合2) 两个集合没有共同部分时,返回值为True
(6)集合.update({}) 一次能够增长多个元素
四、集合类型小结
1)存多个值
2)无序
3) !!!不可变:值变,id就变。不可变==可hash
8、数据类型总结!!!!!
一、按存储空间的占用分(从低到高)
数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,须要存索引相关信息,不可变
列表:有序,须要存索引相关信息,可变,须要处理数据的增删改
字典:无序,须要存key与value映射的相关信息,可变,须要处理数据的增删改
二、按存值个数区分
标量/原子类型: 数字,字符串
容器类型:列表,元组,字典
三、按可变不可变区分
可变:列表,字典
不可变: 数字,字符串,元组
四、按访问顺序区分
直接访问:数字
顺序访问(序列类型):字符串,列表,元组
key值访问(映射类型):字典
9、字符编码
https://blog.51cto.com/10630401/2312336
10、文件处理