一.上节回顾:
1,find通过元素找索引,可切片,找不到返回-1
2,index,找不到报错。
3,split 由字符串分割成列表,默认按空格。
4,captalize 首字母大写,其他字母小写。
5,upper 全大写。
6,lower 全小写。
7,title,每个单词的首字母大写。
8,startswith 判断以什么为开头,可以切片,整体概念。
9,endswith 判断以什么为结尾,可以切片,整体概念。
10,format
{}{}{}.format(有顺序)
{0}{1}{2}{0}.format(有顺序的)
'{name} {age}'.format(name=李复,age=12)
11,strip 默认去掉两侧空格,有条件,
12,lstrip,rstrip
14,center 居中,默认空格。
15,count查找元素的个数,可以切片,若没有返回0
16,expandtabs
17,replace(old,new,次数)
18,isdigit,isalpha,isalnum
19,swapcase 大小写翻转
20,for i in 可迭代对象。
二、作业:
#4,实现一个整数加法计算器: #如:content = input(‘请输入内容:’) # 如用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 #方法一 msg=input('请输入内容') a,b=msg.split('+') sum=int(a)+int(b) print(sum) #方法二 content = input('请输入内容:') # content = '3 + 5' index = content.find("+") # index = 2 s1 = int(content[index+1:]) # int('5') int(' 5') int('5 ') print(s + s1) #5,计算用户输入的内容中有几个整数。 #如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla #理解为有多少个数字 content = input('请输入内容') n = 0 for i in content: if i.isdigit(): n+=1 print(n) #理解为有多少个整数 name = input('请输入:') count = 0 while name: name=name.strip('abcdefghijklmnopqrstuvwxyz') name = name.lstrip('123456789') count += 1 print(count)
三、列表:
(1)索引和切片和字符串类似,切片的输出结果是列表
lis = ['alex',19,'175cm',True] print(lis[0],lis[1],lis[2]) #alex 19 175cm print(lis[0:2],lis[3:0:-1],lis[2::2]) # ['alex', 19] [True, '175cm', 19] ['175cm']
(2)列表的增加 append(追加) ,insert(根据索引插入),extend(迭代增加)
lis.append('hobby') print(lis) # ['alex', 19, '175cm', True, 'hobby'] lis.insert(-2,5) print(lis) #['alex', 19, '175cm', 5, True, 'hobby'] 都是在原来的元素前插入 lis.extend('好聪明') print(lis) # ['alex', 19, '175cm', 5, True, 'hobby', '好', '聪', '明'] lis.extend(['好聪明',1,2]) print(lis) # ['alex', 19, '175cm', 5, True, 'hobby', '好', '聪', '明', '好聪明', 1, 2]
(3)删除列表中的某个元素 pop(根据索引删除,并且把删除的内容返回,一次只能删除一个) remove(根据列表中的元素进行删除 如果为空会报错 不返回,一次只能删除一个)
clear (清空一个列表中的所有元素使字符串变为空) del(根据索引进行删除,可以切片删除,可以加步长删除)
lis = ['alex',19,'175cm',True,''] a = lis.pop() print(a,lis) # True ['alex', 19, '175cm'] 不加索引默认删除最后一个,加索引按照索引,不能超出索引 #lis.remove('19') # remove后必须要加值,值不存在也会报错 lis.remove(19) print(lis) # ['alex', '175cm', True] lis.clear() print(lis) # [] lis = ['alex',19,'175cm',True,''] del lis[0] print(lis) # [19, '175cm', True, ''] del lis[0::2] print(lis) # ['175cm', ''] 也可以使用切片和步长反向删除;超出范围不报错。 如果切片范围不对则没有值
(4)修改 可以使用索引或者切片直接给列表中的元素重新赋值
lis = ['alex',19,'175cm',True,''] lis[1] = 20 print(lis) # ['alex', 20, '175cm', True, ''] #lis[0:2] = '老炮儿' # ['老', '炮', '儿', '175cm', True, ''] 如果修改的内容比赋值的元素多,则会迭代增加 #lis[0:2] = ('老','跑','炮儿') # ['老', '跑', '炮儿', '175cm', True, ''] #lis[0:2] = '老炮儿', # ['老炮儿', '175cm', True, ''] # 如果修改的内容比赋值的元素多,可以用,号就不会迭代 #lis[0:3] = '老炮儿', # ['老炮儿', ''] #lis[0:2] = ('老','跑','炮儿'), # [('老', '跑', '炮儿'), '175cm', True, ''] lis[2::-1] ='老炮儿' # ['儿', '炮', '老', True, ''] 可以做反向的赋值 print(lis)
(5)查找字符串
切片去查,或者循环去查
li = [1,2,5,'taibai','yuanhao',[1,'alex',3,],True] for i in li: print(i)
(6)find 和index 列表中不支持find 只有 index
li = [1,2,5,'taibai','yuanhao',[1,'alex',3],True] print(li.index(5,2,)) # 0 支持切片不支持步长 查找元素不存在时候会报错 print(li.index(True)) # 0 如果列表中含有布尔型,那么将无法用index 取值
(7)排序和翻转列表
li=[1,2,3,4,7,6,9,8,5.5] #li.sort() #print(li) # [1, 2, 3, 4, 5.5, 6, 7, 8, 9] 可以适用于小数的排序 #反转 #li.reverse() # 等价于 li[-1::-1] #print(li) # [5.5, 8, 9, 6, 7, 4, 3, 2, 1] 只反转不排序 li.sort(reverse=True) print(li) # [9, 8, 7, 6, 5.5, 4, 3, 2, 1] 先排序后反转
(8)计数
li=[1,2,3,4,7,6,9,8,5.5,1,2,1] #a = li.count(1) #print(a) # 3 a = li.count('') print(a) # 0 如果找不到结果是0 for i in li: print(i,li.count(i))
(9)range 指定范围,生成指定数字。
#for i in range(1,10): # print(i) #for i in range(1,10,2): # 步长 # print(i) for i in range(10,0,-1): # 反向步长 print(i) l = range(0,10) print(type(l)) # <class 'range'> print(l[0]) #0 print(l[0:2]) #range(0,2)
(10)元组
#元组的索引与列表类似,也可以切片取值,切片取值的结果是元组
lis = ('alex',19,'175cm',True,'') #print(lis[0],lis[1],lis[2]) #alex 19 175cm #print(lis[0:2],lis[3:0:-1],lis[2::2]) # ('alex', 19) (True, '175cm', 19) ('175cm') # t = (1,2,3,'adsf',True,[12,3,'苑昊','taibai'],('fdsa',2,3)) # print(t[4]) # print(t[1:4]) # for i in t: # print(i) # t[4] = False 儿子不能更改 # print(t) # t[5][2] = '苑日天' #里边的列表元素可以修改 # print(t)
(11)列表嵌套
列表中的元素可以是列表也可以是元组 也可以含有字典
li = [1,2,5,'taibai','yuanhao',[1,'alex',3,],True] print(li[3]) # taibai print(li[3][3]) # b s = li[4].capitalize() li[4] = s li[4] = 'Yuanhao' print(li) # [1,2,5,'taibai','Yuanhao',[1,'alex',3,],True] s2 = li[4].replace('hao','日天') li[4] = s2 li[4] = li[4][0:4] + 'ritian' print(li) # [1, 2, 5, 'taibai', 'Yuanritian', [1, 'alex', 3], True] l2 = li[5] li[5][0] = '文杰' print(li) # [1, 2, 5, 'taibai', 'Yuanritian', ['文杰', 'alex', 3], True] li[5][1] = li[5][1].upper() print(li) [1, 2, 5, 'taibai', 'Yuanritian', ['文杰', 'ALEX', 3], True]