一:数据
【1】什么是数据:用来描述存放不同的状态的
【2】为什么数据分种类:不同的状态对应不同数据 既然状态不同 故需要多种类型的数据表示状态
【3】数据类型的分类:
(1)整形int
作用:用来描述人的年龄,游戏等级,身份证号等(说白了就是用整数表示的数据)
定义方式:变量名 = 变量值
例如:
age = 18 # age = int()
(2)进制转换:
十进制转其余进制
(1)二进制:
定义方式:bin
例如:
print(bin(12)) # 0b1100 Ob为二进制的标识
(2)八进制:
定义方式:oct
例如:
print(oct(12)) # 0o14 Oo为八进制的标识
(3)十六进制:
例如:hex
print(hex(12)) # 0xc Oo为十六进制的标识
(3)其余进制转十进制
定义方式:int
例如:
# print(int('x',y)) x表示要转换的数 y表示转换的进制 print(int('10',2)) # 2 print(int('10',8)) # 8 print(int('10',16)) #16
PS:
(1)其只能存单一数据
(2)没有顺序之说
(3)不可变类型
(2)浮点型float:
作用:一般描述 身高 体重 薪水等(说白了就是描述含有小数点的数字的)
定义方式:变量名 = 值
例如:
tall = 1.78 # tall = float()
PS:
(1)其只能存单一数据
(2)没有顺序之说
(3)不可变类型
(3)字符串str:
作用:一般用来描述人的外貌,家庭住址,评价等
定义方式:单引号 双引号 三引号
区别:
(1)三引号可以一次性定义多行数据 其余没有任何区别
(2)三引号可以用来做注释
例如:
name = 'SR' # name = str()
内置方法:
[1]索引取值:
作用:按照一定的顺序 进行内部的取值
定义方式:print(变量名[X])
(1)正向取值:
例如:
test = 'hello world' print(test[0]) # h 在字符串中其取值不是为整体 而是字符串中的单一元素
(2)反向取值:
定义方式:print(变量名[-X])
例如:
test = 'I love you' print(test[-1]) # u
(2)切片:
作用:按照一定的索引范围进行取值
定义方式:print(变量名[X:Y])
例如:
test = 'hello world' print(test[0:5]) # hello
PS:其有个重要特点 当取值的时候只能顾不顾尾
(3)步长:
作用:按照跳跃式取值
定义方式:print(变量名[X:Y:Z])
例如:
test = 'hello world' print(test[0:5:2]) # hlo 跳一个索引取值 步长默认为1
(4)长度len:
作用:在字符串中显示在该字符串在字符的个数
定义方式:print(len(变量名))
例如:
hobbies = 'read game music' print(len(hobbies)) # 15 空格也属于字符
(5)in /not in
作用:成员归属运算
定义方式:print(X in not in 变量名)
例如:
hobbies = 'Read Run ' print('R' in hobbies) # True hobbies = 'Read Run ' print('r' not in hobbies) # True
(6)strip:
作用:
(1)移除字符串中的首尾的某些字符
(2)如果首尾字符为空格默认清除该符号
定义方式:print(变量名.strip())
例如:
name = '@@@@I [email protected] [email protected]@@@' print(name.strip('@')) # I [email protected] You
扩展用法:
(1)lstrip
作用:清除字符串左边的字符
例如:
name = 'SSS I [email protected] You SSS' print(name.lstrip('S')) # I [email protected] You SSS
(2)rstrip
作用:清除字符串右边的字符
例如:
name = 'SSS I [email protected] You SSS' print(name.rstrip('S')) # SSS I [email protected] You
(7)切分split:
作用:按照某个字符进行分隔 分隔之后的结果成为一个列表
基本定义方式:print(变量名.split(S))
例如:
user_info = 'SR|18|read' print(user_info.split('|')) # ['SR', '18', 'read']
扩展用法:
(1)rsplit
作用:从右边根据某字符进行切割
例如:
hobbies = 'read|game|music' print(hobbies.rsplit('|',1)) # ['read|game', 'music']
(8)lower,upper
(1)lower
作用:
(1)将字符更改为全小写
(2)数字不进行更改
例如:
name = 'S1R' print(name.lower()) # s1r
(2)upper
作用:将字符全部更改为大写
例如:
name = 's1r' print(name.upper()) # S1R
(9)startswith,endswith
(1)startwith
作用:判断是否以什么字符开头
例如:
name = 'SR' print(name.startswith('S')) # True
(2)endswith
作用:判断是否以什么字符结尾
name = 'SR' print(name.endswith('R')) # True
(10)format
作用:指定某些数据处在什么样的位置
定义方式:print(变量名 {}.format())
方法一:占位坐 谁来谁坐 同%s %d类似
例如:
print('My name is {} My age is {}'.format('SR',18)) #My name is SR My age is 18
方法二:排号坐 根据索引号入座
例如:
print('My name is {1} My age is {0}'.format(18,'SR')) # My name is SR My age is 18
方法三:指名道姓坐
例如:
print('My name is {name} My age is {age}'.format(name='SR',age=18)) #My name is SR My age is 18
(11)join
作用:通过某些字符连接生成一个新的字符串
定义方式:print(变量名.join())
例如:
hobbies = 'read game music' print('&'.join(hobbies)) # r&e&a&d& &g&a&m&e& &m&u&s&i&c
(12)replace:
作用:将字符串中的某些字符替换
定义方式:
例如:
name = 'SR' print('SR'.replace('SR','sr')) # sr
(13)isdigit:
作用:用于判断字符串中字符是否为纯数字
例如:
name = 'SR' print(name.isdigit()) # False age = '18' print(age.isdigit()) # True
了解部分:
find,rfind,index,rindex,count name='egon say hello' print(name.find('o',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引 # print(name.index('e',2,4)) #同上,但是找不到会报错 print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有 #center,ljust,rjust,zfill name='egon' print(name.center(30,'-')) print(name.ljust(30,'*')) print(name.rjust(30,'*')) print(name.zfill(50)) #如果格数不够用0填充 #expandtabs name='egon\thello' print(name) print(name.expandtabs(1)) # tab的格数 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='egon say hi' print(msg.title()) #每个单词的首字母大写
三:列表
作用:可以存取多个值 可存可取
定义:[]符号内部用逗号分隔
例如:
number = [1,2,3,4] # number = list()
【1】
内置方法:
(1)正向取值:
例如:
number = [1,2,3,4] print(number[0]) # 1
(2)反向取值:
例如:
number = [1,2,3,4] print(number[-1]) # 4
追加的三种方式:
方式一:
append
作用:
(1)尾部添加
(2)如果添加是容器类型数据 会将容器类型看成单个数据
例如:
number = [1,2,3,4] number.append(5) print(number) # [1, 2, 3, 4, 5]
方式二:
insert:
作用:
(1)按照索引添加
(2)如果添加是容器类型数据 会将容器类型看成单个数据
例如:
number = [1,2,3,4] number.insert(1,'SR') print(number)
方式三:
extend
作用:扩展多个元素添加到列表中
number = [1,2,3,4] number1 = [5,6,7] number.extend(number1) print(number) # [1, 2, 3, 4, 5, 6, 7]
删除的三种方式:
(1)
del
作用:
(1)删除任意类型的数据
(2)没有返回值
例如:
number = [1,2,3,4] del number[0] print(number) # [2, 3, 4]
(2)remove
作用:
(1)删除指定的数据
(2)没有返回值
例如:
number = [1,2,3,4] number.remove(4) print(number) # [1, 2, 3]
(3)pop
作用:
(1)尾部弹出数据
(2)按照索引号弹出数据
(3)有返回值
例如:
number = [1,2,3,4] number.pop() print(number) # [1, 2, 3] 尾部弹出 number = [1,2,3,4] number.pop(0) print(number) # [2, 3, 4] 索引弹出 number = [1,2,3,4] print(number.pop()) # 4 返回值
PS:
(1)能存多个值
(2)有序
(3)可变类型
四:元组
作用:可以存取多个值 但是不能修改内部的值
定义方式:()内部用逗号分隔
例如:
number = (1,2,3,4,) # number = tuple()
元组特性:
(1)
test = tuple(1) print(test) # 报错 因为在元组内部基于for循环
(2)
test = (1)
print(type(test)) # <class 'int'>
name = tuple('SR')
print(type(name)) # <class 'tuple'>
# PS:当元组内部只为一个数据的时候 如果没有用逗号分隔 看元组内部为什么类型数据 即为什么类型数据
PS:在容器数据类型中 无论容器中存放多少数据 都用逗号将数据分隔
【3】
内置方法:
(1)正向索引取值
例如:
test = (1,2,3) print(test[0]) # 1 索引取值
(2)反向索引取值
例如:
test = (1,2,3,4,5) print(test[-1])
步长
(1)隔值取值(即隔多少个数据取一个数值)
例如:
test = (1,2,3,4,5) print(test[0:5:2]) # (1, 3, 5) # PS:顾头不顾尾,左边为头,右边为尾
长度:
作用:查看元组内部数据个数
test = (1,2,3,4,5) print(len(test)) # 5
in /not in
作用:查看某元素是否属于元组内部
例如:
test = (1,2,3,4,5) print(1 in test) # True test = (1,2,3,4,5) print(6 not in test) # True
index:
作用:查看元素在元组中的索引号
例如:
test = (1,2,3,4,5,1) print(test.index(2)) # 1
count:
作用:查看元素在元组中出现的次数
例如:
test = (1,2,3,4,5,1) print(test.count(1)) # 2
number = (1,2,3,4,[5,6,7,8]) number[4][0] = 100 print(number) # (1, 2, 3, 4, [100, 6, 7, 8])
五: 字典
作用:一次性存取多个值 且对应的值都有一个key对其进行描述
定义方式:{}元素之间用逗号分隔
PS:
(1)其中key必须是不可变类型
(2)value可以是任意类型的数据
内置方法:
(1)
.keys
作用:查看key名称 需要的时候才会返回给你
例如:
user_info = {'name':'SR','age':18}
print(user_info.keys()) # dict_keys(['name', 'age'])
(2).value
作用:查看value对应的值 需要的时候会返回给你
例如:
user_info = {'name':'SR','age':18}
print(user_info.values()) # dict_values(['SR', 18])
PS:在Python2中其以列表的形式存在于内存中
(3)
.get
作用:
(1)通过get获取value对应的值
(2)如果字典中不存在key 不会报错返回none
(3)如果key存在则返回为key本身所对应的内容 如果不存在则会返回自己定义的内容
例如:
user_info = {'name':'SR','age':18}
print(user_info.get('age')) # 18
user_info = {'name':'SR','age':18}
print(user_info.get('hobbies')) # None不存在返回None
user_info = {'name':'SR','age':18}
print(user_info.get('hobbies','read')) # read 自己定义的内容
(4)
.{}fromkey
作用:新增一个键值对
例如:
user_info = {}.fromkeys(('name',),'SR')
print(user_info) # {'name': 'SR'} 逗号分隔***
.popitem
作用:
(1)弹出键值对
(2) 弹出有返回值
(3)弹出结果为元组
例如:
user_info = {'name':'SR','age':18,'hobbies':'read'}
print(user_info.popitem()) # ('hobbies', 'read')
.setdefault
(1)当key存在的时候 不会修改原值 且将原值返回给你
(2)当key不存在的时候 不会报错 返回结果为空
(3)如果定义value 新增一个键值对 且将键值对的值返回给你
例如:
user_info = {'name':'SR','age':18,}
print(user_info.setdefault('name')) # SR 值存在的情况下
user_info = {'name':'SR','age':18,}
print(user_info.setdefault('hobbies')) #None
user_info = {'name':'SR','age':18,}
print(user_info.setdefault('hobbies','read')) # read
print(user_info) # {'name': 'SR', 'age': 18, 'hobbies': 'read'}
.update
作用:
(1)用来将某字典1新增到某字典2中
(2)修改原有key所对应的value
例如:
user_info = {'name':'SR','age':18,}
info = {'hobbies':'read'}
user_info.update(info)
print(user_info) # {'name': 'SR', 'age': 18, 'hobbies': 'read'}
user_info = {'name':'SR','age':18,}
user_info.update(age=20)
print(user_info) # {'name': 'SR', 'age': 20}
.items
作用:会将字典中的键值对打散
例如:
user_info = {'name':'SR','age':18,'hobbies':'read'}
for k,v in user_info.items():
print(k,v)
'''
name SR
age 18
hobbies read
'''
六:集合
作用:存取多个值 进行关系运算 去重复值
定义方式:{}
例如:
user_info = {1,2,3,} # user_info = set()
PS:
(1)集合内部只能是不可变数据类型
(2)集合内部无重复值
(3)集合无序
number = {1,2,3,4,[1,2,3]}
print(type(number)) # 报错
number1 = {1,2,2,2,3,4}
print(number1) # {1, 2, 3, 4}
print(number1[0]) # TypeError: 'set' object does not support indexing
内置方法:
(1)&
作用:交集
例如:
pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
print(pythons&linuxs) # {'alex', '张金蛋', '张锡蛋'}
(2)|
作用:并集
例如:
pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
print(pythons|linuxs) # {'egon', '李二丫', '张金蛋', '赵铜蛋', 'lxx', '陈独秀', 'oldboy', '李银弹', 'alex', '张锡蛋'
(3)-
作用:差集
例如:
pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
print(pythons-linuxs) # {'李银弹', 'oldboy', '赵铜蛋', '李二丫'}
(4)^
作用:对称差集
例如:
pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
print(pythons^linuxs) # {'赵铜蛋', '陈独秀', 'oldboy', '李二丫', 'egon', 'lxx', '李银弹'}
(5)>=
作用:判断一个集合是否为另外一个集合的父集
例如:
number = {1,2,3}
number1 = {1,2}
print(number>=number1) # True
(6)<=
作用:判断一个集合是否为另外一个集合的子集
例如:
number = {1,2,3}
number1 = {1,2,6}
print(number<=number1) # False
.remove
作用:删除某个指定的元素
例如:
number = {1,2,3}
number.remove(3)
print(number) # {1, 2} 返回值为None
PS:如果某个指定元素不存在 则会报错
.discard
作用:删除某个元素
(1)如果元素不存在不会报错 且返回字典中包含的元素
(2)元素返回值为None
number = {1,2,3,4}
number.discard(3)
print(number) # {1, 2, 4}
number = {1,2,3,4}
number.discard(38)
print(number) # {1, 2, 3, 4}
.diffrence
作用:比较两个集合之间的不同元素
例如:
number = {1,2,3}
number1 = {1,2,4}
print(number.difference(number1)) # {3}
number = {1,2,3}
number1 = {1,2,3,4}
print(number.difference(number1)) # set() 如果元素不对等返回空
number = {1,2,3}
number1 = {1,2,3}
print(number.difference(number1)) # set() 如果元素对等返回空