找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
第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 中的切片
3、切片的语法:[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  【字符串的反转 重要】
4、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))       #结果python   用*分隔符连接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
5、python 中的列表   用 list = []
1)定义一个列表一般使用list表示  []
list1 = ['dcs','多测师',88,'test']
print(list1)        #['dcs', '多测师', 88, 'test']
print(type(list1))     #
2)定义列表的第二种方法
str1 = 'duoceshi'      #定义一个变量为字符串
list1 = list(str1)      #通过list方法把str1转化为列表
print(list1)        #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
3)列表中的函数
①索引赋值
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']
切片赋值
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']
append函数:添加一个元素(任意数据类型都可以添加)
list1 = ['dcs','多测师',88,'test']
list1.append('666')      #往list1这个列表中添加一个元素666,默认添加到后面
print(list1)      #['dcs', '多测师', 88, 'test', '666']
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方法一般和列表还有字符串进行拼接。不能和整型拼接
insert(index,value)函数:在指定位置插入一条数据
list1 = ['dcs', '多测师', 88, 'test']
list1.insert(1,'1234')
print(list1)        #['dcs', '1234', '多测师', 88, 'test']
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]  相同元素只会删除第一个
索引删除值 del
list1 = ['dcs', '多测师', 88, 'test']
del list1[1]    #删除索引为1的值
print(list1)       #['dcs', 88, 'test']
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进行排序
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))     #报错 整型和字符串不能一起排序

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册