# 第4讲 python中的数据结构
# 1、python中的数据类型
# 整型int 字符串str 列表list 元组tuple 集合set 字典 dict 布尔值 (真假)
# 2、python 中的索引
# str1 = 'python' #定义一个变量str1 ,把python字符串赋值给str1
# 正向索引 0 1 2 3 4 5 是从0开始 从左往右
# p y t h o n
# 负向索引 -6 -5 -4 -3 -2 -1 从-1开始 从右往左
# p y t h o n
# 1)正向索引取值
# print(str1[0]) #打印结果 p
# print(str1[3]) #打印结果 h
# print(str1[5]) #打印结果 n
# print(str1[6]) #IndexError: string index out of range
# 2)负向索引取值
# print(str1[-1]) #打印结果 n
# print(str1[-4]) #打印结果 t
# print(str1[-7]) #IndexError: string index out of range
# python 中的切片
# 切片的语法:[start_index : end_index : step]
# 解释说明:start_index表示起始索引 end_index表示结束索引
# step表示步长,步长不能为0,且默认值为1
# 注意:切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引
# (也就是结束索引减1)的所有元素。
# 解释:
# 1)包含开始索引,不包含结束索引
# 2)step如果不写默认是1,step如果是整数,则从左往右取数,step如果为负数,则从右往左
# 3)step为1是挨个取,为2则是隔一个取一个,step为3,就是隔两个取一个
# 4)开始索引和结束索引如果没有值,则可以是开始也可以是结尾,取决于step大的值是正数还是负数
# str1 = 'python'
# print(str1[1:3]) #yt (step默认是1,从左往右取值,结束索引减一)
# print(str1[2:5]) #tho(step默认是1,从左往右取值,结束索引减一)
# print(str1[1:6]) #ython(step默认是1,从左往右取值,结束索引减一)
# print(str1[:4]) #pyth(没有开始索引,step是正数,从左往右取数,开始全部取完,结束索引减一)
# print(str1[1:]) #ython(没有结束索引,step是正数,从左往右,结束全部取完)
# print(str1[1:5:2]) #yh(先找1:5的索引值,然后隔一个取一个)
# print(str1[-1:-5]) #打印为空(step是正数,从左往右取数,-5都取不到)
# print(str1[-1:-5:-1]) #noht(step是负数,从右往左取数)
# print(str1[-5:-1]) #ytho
# print(str1[-5:-1:-1]) #打印为空
# print(str1[::]) #python
# print(str1[::-1]) #nohtyp 【字符串的反转 重要】
# 3、python 中的字符串函数
# 函数:表示每个输入值对应唯一输出的值的一种关系
# 1)capitalize():首字符大写 是一个函数
# str1 = 'python'
# str2 = 'hello_python'
# print(str1.capitalize()) #结果Python 可以使首字母大写
# print(str1.title()) #Python title()也是一个函数,首字母大写
# print(str2.title()) #Hello_Python 可以使连接的首字符也大写
# 2)count():统计具体字符出现的次数
# str1 = 'hellopython'
# print(str1.count('h')) #结果 2 统计字母出现的次数
# 3)join():把集合中的字符按自定义的分隔符连接在一起
# str1 = 'python'
# print('*'.join(str1)) #结果p*y*t*h*o*n 用*分隔符连接python这个字符串
# 4)split():把字符串通过指定标识符进行分割
# str1 = 'python'
# print(str1.split('*')) #结果['python'] 指定的分割符*不在python字符串中则返回一个列表
# # 这个字符串作为这个列表的元素
# print(str1.split('h')) #['pyt', 'on'] 指定的分割符h在字符串中则返回一个列表,且把这个分割符
# 去掉,变成列表多个元素值
# 练习题:
# 通过所学的知识把hello_python 转化为HelloPython
# str1 = 'hello_python'
# s = str1.title().split('_') #是一个列表['hello','python']
# # print(s[0]+s[1]) #HelloPython
# for i in s:
# print(i,end="") #end ="" 不换行
# 5)strip(ab):删除字符串开头和结尾有a或b的字符
# str1 = 'abcdeabfgab'
# str2 = 'bacdeabfgab'
# print(str1.strip('ab')) #结果cdeabfg
# print(str2.strip('ba')) #cdeabfg
# 6)lstrip(ab):删除字符串开头有ab序列字符
# str1 = 'abcdeabfgab'
# print(str1.lstrip('ab')) #cdeabfgab
# 7)rstrip(ab):删除字符串结尾有ab序列字符
# str1 = 'abcdeabfgab'
# print(str1.rstrip('ab')) #abcdeabfg
# 8)startswith():判断字符串是否以什么开始
# str1 = 'python'
# print(str1.startswith('p')) #True
# print(str1.startswith('o')) #False
# 9)endswith():判断字符串是否以什么结束
# print(str1.endswith('n')) #True
#
# name = input('请输入你要上传的文件:')
# if name.endswith('.txt'):
# print('上传成功')
# else:
# print('上传失败')
# 10)find()/rfind():字符串查询find()是左边开始查,rfind()从右边开始查,
# 结果 显示下标
# str1 = 'python'
# str2 = 'abcabc'
# print(str1.find('y')) #索引为1
# print(str1.rfind('n')) #索引为5 一般是正索引
# print(str2.rfind('c')) #索引为5 一般是正索引
# 11)replace():replace(substring,newstring,max) substring表示被替换的字
# 符串,newstring要替换字符串,max表示替换的次数
# str1 = 'abcdabcd'
# print(str1.replace('a','t')) #tbcdtbcd 如果没有次数默认全部替换,把a字符替换成t字符
# print(str1.replace('a','t',1)) #tbcdabcd 这里把a字符替换成t字符,替换一次
# 12)lower():方法转换字符串中所有大写字符为小写
# str1 = 'PYTHON'
# str2 = 'Python'
# print(str1.lower()) #python
# print(str2.lower()) #python
# 13、upper():将字符串中的所有小写字符转换为大写字母输出
# str1 = 'python'
# str2 = 'Python'
# print(str1.upper()) #PYTHON
# print(str2.upper()) #PYTHON
# 14)isdigit():判断字符串中是否全为数字
# str1 = '12345'
# str2 = 'abc123'
# print(str1.isdigit()) #True
# print(str2.isdigit()) #False
# 15)isalpha():判断字符串中是否全为字母
# str1 = 'python'
# str2 = 'abc123'
# print(str1.isalpha()) #True
# print(str2.isalpha()) #False
# 16)isalnum():判断字符串当中是否全都为数字,全为字母,或者数字字母组合 返回布尔值:
# True和False 如果有特殊符号就是否
# str1 = 'python'
# str2 = 'abc123'
# str3 = '1234'
# str4 = '123@'
# print(str1.isalnum()) ##True
# print(str2.isalnum()) #True
# print(str3.isalnum()) #True
# print(str4.isalnum()) #False
# 17)istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
# str1 = 'Python'
# str2 = 'pYthon'
# str3 = 'PYTHON'
# print(str1.istitle()) #True
# print(str2.istitle()) #False
# print(str3.istitle()) #False
# 18)isupper()/islower():is开头的就是判断一个字符串是否展示为都是大写或者都是小写
# str1 = 'PYTHON'
# str2 = 'python'
# str3 = 'Python'
# print(str1.isupper()) #True
# print(str3.isupper()) #False
# print(str2.islower()) #True
# print(str3.islower()) #False
# 4、python 中的列表 用 list = []
# 1)定义一个列表一般使用list表示 []
# list1 = ['dcs','多测师',88,'test']
# print(list1) #['dcs', '多测师', 88, 'test']
# print(type(list1)) #<class 'list'>
# 2)定义列表的第二种方法
# str1 = 'duoceshi' #定义一个变量为字符串
# list1 = list(str1) #通过list方法把str1转化为列表
# print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
# 列表中的函数
# 1)索引赋值
# str1 = 'duoceshi' #定义一个变量为字符串
# list1 = list(str1)
# # print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
# list1[2]= 'dcs' #把列表中索引为2的值替换为dcs
# print(list1) #['d', 'u', 'dcs', 'c', 'e', 's', 'h', 'i']
# 2)切片赋值
# str1 = 'duoceshi' #定义一个变量为字符串
# list1 = list(str1)
# # print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
# list1[2:] = 'dcs' #把列表索引为2的后面的所有值替换为dcs 赋值
# print(list1) #['d', 'u', 'd', 'c', 's']
# 3)append函数:添加一个元素(任意数据类型都可以添加)
# list1 = ['dcs','多测师',88,'test']
# list1.append('666') #往list1这个列表中添加一个元素666,默认添加到后面
# print(list1) #['dcs', '多测师', 88, 'test', '666']
# 4)extend函数:连接两个列表
# list1 = ['dcs','多测师',88,'test']
# list2 = ['111','222']
# list3 = '123'
# list4 = 123
# # list1.extend(list2) #拼接两个列表 把list1和list2拼接在一起
# # print(list1) #['dcs', '多测师', 88, 'test', '111', '222']
# # list1.extend(list3) #['dcs', '多测师', 88, 'test', '1', '2', '3']
# list1.extend(list4) #extend 可以拼接列表和字符串,不能拼接整型
# print(list1)
# 注意:
# extend与append方法的相似之处在于都是将新接收到参数放置到已有列表的后面
# append方法可以接收任意数据类型的参数,并且追加到list尾部
# extend方法一般和列表还有字符串进行拼接。不能和整型拼接
# 5)insert(index,value)函数:在指定位置插入一条数据
# list1 = ['dcs', '多测师', 88, 'test']
# list1.insert(1,'1234')
# print(list1) #['dcs', '1234', '多测师', 88, 'test']
# 6)remove函数:移除元素
# list1 = ['dcs', '多测师', 88, 'test']
# list1.remove(88)
# print(list1) #['dcs', '多测师', 'test']
# list2 = [1,2,3,4,2,4]
# list2.remove(2)
# print(list2) #[1, 3, 4, 2, 4] 相同元素只会删除第一个
# 7)索引删除值 del
# list1 = ['dcs', '多测师', 88, 'test']
# del list1[1] #删除索引为1的值
# print(list1) #['dcs', 88, 'test']
# 8)sort函数:实现列表的升序排列
# list1 = [1,4,2,6,7,8,3]
# list2 = [1,2,6,7,3,4,'a','b']
# list3 = ['a','A','B','c']
# list1.sort()
# print(list1) #[1, 2, 3, 4, 6, 7, 8]
# list2.sort()
# print(list2) #整型和字符串不能一起排序
# list3.sort()
# print(list3) #['A', 'B', 'a', 'c'] 如果列表中都是字符串通过ASCII进行排序
# 9)sorted函数:实现降序排列
# list1 = [1,5,3,7,2]
# list2 = ['dcs', '多测师', 88, 'test']
# print(sorted(list1,reverse=True)) #[7, 5, 3, 2, 1]
# print(sorted(list1,reverse=False)) #[1, 2, 3, 5, 7]
# print(sorted(list2,reverse=False)) #报错 整型和字符串不能一起排序
|
|