总结: ''' ----------------------------------------------索引下标的概念------------------------------------------ 索引可以认为是某个数据的序号:比如班级里成绩最好的那个人的序号,就是1,第二好的就是2 索引可以提取字符串、列表、元组等数据类型中的某个元素 在Python中的索引位置从左到右,从0开始;从右到左是-1开始 索引的取值格式:在变量后面添加一对中括号[],在[]中填写需要提取值的索引位置,eg:提取第一个值:变量名[0] ''' # str = '欢迎学习python' # print(str[6]) #从左到右索引位置是6 # print(str[-3]) #从右到左索引位置是-3 ''' 切片的概念 作用:提取部分字符串 语法:变量名[start:end] #左闭右开 ''' # print(str[0:4]) #提取“欢迎学习” # print(str[-5:-1]) #提取"P"后面的字符;注意开始数的位置为:0(*****) # print(str[4:]) #提取start位置后面的所有字符;注意开始数的位置为:0(*****) # print(str[:-6]) #提取end前面的所有字符; # print(str[:]) #提前全部字符; ''' --------------------------------for 循环-------------------------------------------------------- #while循环实现 str = 'hello' i=0 while i<5: print(str[i]) i+=1 # for in 是我们使用的for循环关键字 for循环语法: for 自定义的循环变量 in 可迭代遍历的对象(字符串、列表、元组) for循环可以不用考虑循环的次数,for会自动获取迭代对象的索引位置的值,直至末尾,循环才会结束(*****) ''' # str = 'hello' # for i in str: #每次循环,for循环会把迭代对象里获取的值,赋值给i(循环变量)【理解:迭代对象和循环变量】 # print(i) #要有索引值的数据类型才能成为可迭代对象; ''' range函数 语法: for in range(start,end,step) 循环代码 star:起始位置,要给定数值类型,默认值为0 end:结束位置,数值类型(左闭右开) step:步长,默认值为1 ''' #打印1-100的数值 # for i in range(1,101,3): # '3':代表每次循环增加的距离为:3; # print(i) #for i in range(100): # 可以在range中只写end结束位置,她会默认从0开始取,知道结束位置-1 #for i in range(2,100,2): #取偶数 ''' continue 跳过本次循环,继续执行下次循环 ''' #打印1-10之间的数字,但是不能打印被3整除的数,并且用一个“过‘代替 # for i in range(11): # if i%3==0: # print('过') # continue # if i==10: # break # print(i) # else: #当循环被break强制终止的时候,else中的内容不会被执行 # print('循环结束') ''' ----------------------------------------------for循环实例------------------------------------ ''' #使用for循环嵌套实现打印出一个月内每一周中的每一天,附加条件:第3周有事请假不打印,周六周日不打印 # for i in range(1,5): #外层循环有4次,表示每月有4周 # if i==3: # continue # for j in range(1,8): #内层循环有7次,表示每周有7天 # if j>5: #不打印周6,7 # break #break和continue在嵌套循环中,只会对上级循环起作用 # print(f'今天是第{i}周,第{j}天') ''' 列表 list 列表可以使用一个变量存储多个元素,每个元素使用’,',隔开 语法:变量名 = [元素1,元素2......] 列表可以存储不同的数据类型(一个列表里可以放数字、字符串、嵌套列表) 列表可以嵌套多层,嵌套的列表只算一个元素 可以使用索引来提取列表中的元素 ''' # student = [1,'张三','李四','王五','赵六',['孙七',18]] # print(student) #直接打印列表(原型) # # print(len(student)) #查看一个变量的长度可以使用len()内置函数 # print(student[2]) #打印李四 # print(student[2:4]) #打印李四和王五 切片出来的数据类型会继承原来的数据类型 # print(type(student[2:4])) #查看切片的类型 # print(student[2:4:2]) #使用步长来获取想要的数据 # print(student[-1][0]) #嵌套列表可以使用两层索引位置取出对应的值; ''' ------------------列表添加元素------------------------------------- 方法: 1、append() 默认添加到列表的末尾 2、insert() 在指定的索引位置添加元素 3、extend() 将另外一个列表中的元素逐一添加 ''' # list_name = ['张三','李四','王五'] # print(list_name) # list_name.append('赵六') #在末尾添加元素 # print(list_name) # list_name.insert(1,'小明') #在索引位置是1的位置,添加元素 # list_name2=['小蓝','小红','小绿'] # list_name.extend(list_name2) #将name2中的元素逐一添加到name中的最后面,此方法不能指定位置,只能添加在最后; # print(list_name) ''' -----------------------------------列表中查找元素--------------------------------------- 成员运算符: in(存在)->存在未ture,否则为false not in(不存在) --->不存在未ture,否则为false ''' # list_name = ['张三','李四','王五'] #查找张三是否这个列表中 # if '张三' in list_name: # print(True) # else: # print(False) # # list_name = ['张三','李四','王五'] #查找赵六是否这个列表中 # if '赵六' not in list_name: # print(True) # else: # print(False) #知道数据在这个列表里后,怎么知道这个数据的索引位置呢? index():返回查找元素的索引位置: # print(list_name.index('李四')) # print(list_name.index('赵六')) #查找的元素不在列表中,就会报错 '''-----------------------------------列表中修改元素---------------------------------------''' # list_name = ['张三','李四','王五'] # print(list_name) # list_name[1]='李小四' #将李四改为李小四, 这里的:list_name[1],表示取出元素,并且取元素使用:[] # print(list_name) # list_name2=['小红','小绿','小白'] # list_name.append(list_name2) #将list_name2中的元素添加到list_name中; # print(list_name) #如果不知道元素的索引位置,可以用index()修改 # list_name[list_name.index('张三')] = '张小三' # print(list_name) '''-----------------------------------列表中删除元素--------------------------------------- 删除元素的四种方法: pop() 可以指定位置删除,如果不指定,默认删除最后一位 remove() 指定元素值删除 del 可以使用索引或者切片来删除元素 clear() 将列表中的所有元素清空 ''' # student = ['张三','李四',19,'王五',28,'赵六',88,'孙七'] # student.pop() #默认移出最后一位, 只删除一个元素 # print(student) # student.pop(4) #删除索引位置为4的元素 只删除一个元素 # print(student) # student.remove('赵六') #指定元素值进行删除 只删除一个元素 # print(student) # del student[2:4] #通过切片删除2个元素(注意左闭右开原则), 可删除多个元素 # print(student) # student.clear() #清空所有元素 # print(student) '''-------------------------------列表推导式----------------------------------''' #将100以内的偶数添加到列表中 #普通的写法 # list_name=[] #首先定义一个空列表 # for i in range(100): # if i%2==0: # list_name.append(i) # print(list_name) #列表推导式 可以将我们的for循环用[],写在一行里面操作 # list_num2 = [i for i in range(100) if i%2==1] # print(list_num2) '''-------------------------------列表中的其他方法---------------------------------- copy() 将列表复制一份,需要定义一个新变量来接受 count() 统计列表中某个元素出现的次数 reverse() 将列表元素反向 sort() 对列表进行排序,会在原列表中进行排序(不同于copy()方法) sorted() 对列表进行排序,结果会生成一个新的列表,需要定义一个新变量来接受 ''' #如果直接用一个变量去等于另一个变量,这两个变量的值是有关联的,而使用copy()方法,这两个变量的值是没有关联; #eg: # a = [1,2,3] # b = a # c = a.copy() # print(a,b,c) # a[0] = 4 # print(a,b,c) #使用copy()方法,新列表会独立于原列表之外,新列表的改变,不会影响原列表,它独立了; # print(id(a),id(b),id(c)) #"b=a",说明b和a同时指向了同一个内存地址;.copy()是将变量复制出来,赋给一个新的变量,指向不同的内存地址; # list1 = [1,3,5,4,8,4,6,6,4,3,4,2,4,4,7] # print(list1.count(4)) #统计4 出现的次数; # list1.reverse() #将列表反向; # print(list1) # list1.sort() #将列表进行排序,默认为升序 # print(list1) # list1.sort(reverse=True) #将列表进行降序排列 # print(list1) '''---------------以下是sorted的用法-----------------------''' # list2 = [4,5,7,9,3,10] # list2_new = sorted(list2) #将排序后的列表赋值给一个新变量,sorted()方法于其他方法不一样,它的使用方法于count()一致,需要再()中填写变量; # print(list2) # print(list2_new) '''-------------------元组---------------------------- 元组于列表类似,不同之处在于元组的元素不可以修改删除,元组使用()定义; 注意:当元组中一个元素的时候,后面也要写一个逗号,否则就会被识别为一个普通元素,而不是元组 如果要将元组中的元素进行修改或者删除,可以将元组转化为列表 ''' # a =(1) # b = (1,) #元组中只有一个元素,也要用+一个逗号 # print(a) # print(b) # print(type(a)) #a是一个int类型 # print(type(b)) #b是一个元组类型 #tuple1 = ('apple','banana','hami','grape') # print(tuple1[1]) #元组的操作与列表类似,输出:banana; # print(tuple1[1:3]) #切片方法于列表一致,输出的结果仍为元组; '''----------------修改元组元素-------------------''' # list1=list(tuple1) #将元组转化为列表 # print(list1) # list1[1]='orange' #通过列表来修改元组的元素 # print(list1) # tuple1=tuple(list1) #再将列表转化为元组 # print(tuple1) '''----------------元组拆包------------------- 元组可以赋值给多个变量,只要变量个数不超过元组长度 元组的长度可以多余变量的数量,只需要在某个变量的前面加个*,就可以让这个变量把多余的元素都接受,并返回一个列表 ''' # tuple1 = ('apple','banana','hami','grape') # # a,b,c,d = tuple1 #将元组里面的元素分别赋值给变量a,b,c,d # # print(a,b,c,d) # *a,b,c = tuple1 # 元组过长,+"*"把多余的元素赋值给c,如果不加*,会报错;*可以加在任意变量前面; # print(a,b,c) #以上输出:’['apple', 'banana'] hami grape‘,元组的赋值也是一一对应的关系; '''----------------------------------------课后作业-----------------------------------------''' ''' 1、有一个列表info = [1,3,2,5,4],通过两种方式将列表变为 info=[5,4,3,2,1] 2、一个列表中有重复元素,编写程序,移出重复元素: was:li=[1,1,1,2,2,2,3,2,4,3,2,5,4,3,2,1,4] is: li = [1,2,3,4,5] ''' info = [1,3,2,5,4] info_new1=sorted(info) info_new1.reverse() print(info_new1) info.sort(reverse=True) print(info) li=[1,1,1,2,2,2,3,2,4,3,2,5,4,3,2,1,4] li1=[] # for i in range(1000): # if i in li: # li1.append(i) # print(li1) for i in li: if i in li1: continue else: li1.append(i) print(li1)