1.if语句
if语句在Python中的两种结构为:
# 1 if 条件表达式: 代码块 # 2 if 条件表达式: 代码块 elif 条件表达式: 代码块 # 3 if 条件表达式: 代码块 else: 代码块
2.for语句
for 变量 in 数据结构: 循环体
# 9*9乘法表 for i in range(1,10): for j in range(1,i + 1): print("%dx%d=%d" % (j,i,i * j),end=" ") print("")
3.while语句
while 条件表达式: 代码块
# 9*9乘法表 while line < 10: temp = 1 while temp <= line: print("%d x %d = %d"%(temp, line, temp*line),end = " ") temp += 1 print("") line += 1
break:直接跳出当前循环
continue:结束当前正在执行的循环,继续下一次循环
3.list
变量:相当于是一个容器,每次只能存储一个数据
作用:相当于是一个容器,可以同时存储多个数据
本质:一种有序的集合【有序:数据的存放顺序和底层存储的顺序是相同】
列表中的元素本质存储的是一个变量【引用】,列表是可变的【一个列表一旦被定义,则在代码运行的过程中,其中的元素的值可以随时发生改变】
num = 10
list1 = [43,5,45,46,5]
print(id(list1[0]))
list1[0] = 100
#1.创建【定义一个列表类型的变量】 #命名方式:lxx listxxx,不建议直接使用list #其中允许存放重复元素 list1 = [45,23,2,54,54,6] print(list1) #其中允许存放不同类型的数据 list2 = ["hello",4637,False] print(list2) #列表元素的访问 #索引/下标/角标:取值范围:0~len(xx) - 1 或者 -1~ - (len(xxx)) print(list1[3]) print(list1[-1]) #print(list1[20]) #IndexError: list index out of range 列表下标越界 #列表元素的替换/修改 list1[3] = 473 print(list1) #组合:生成了一个新的列表 print(list1 + list2) print(list1) #列表元素的重复 print(list1 * 3) print(list1) #判断某个元素是否在列表中 print(10 in list1) #False print(10 not in list1) #True print(45 in list1) #True print(45 not in list1) #False #列表切片【截取】:根据指定的列表获取子列表 list3 = [45, 23, 2, 473, 54, 6,5,6,56,5] print(list3[2]) print(list3) #格式:列表名[start:end:step],包头不包尾 #获取从指定下标开始到结尾的元素组成的一个子列表 print(list3[2:]) #获取从开头到指定下标的元素。。。。 print(list3[:6]) #截取指定区间 print(list3[2:6]) #特殊情况1:如果end超出了下标的范围,则默认获取从指定下标开始到结尾的元素 print(list3[4:100]) #等价于 print(list3[4:]) #特殊情况2:step在默认情况下为1 print(list3[1:6:2]) #1,3,5 print(list3[-1:-6]) #当start和end都为负数,step为正数的时候,获取的结果为[] print(list3[-1:-6:-2]) #当start,end和step都为负数的时候,表示倒序 #将列表倒序输出 print(list3[-1::-1]) print(list3[::-1]) #列表系统功能 #1.添加元素 #1.1append,追加,在列表的末尾添加元素 常用 l1 = [22,33,44,55] print(l1) #追加单个元素 l1.append(66) print(l1) #追加多个元素,不能直接追加,通过列表的形式追加,形成了一个二维列表 #l1.append(77,88) #报错:TypeError: append() takes exactly one argument (2 given) l1.append([77,88]) print(l1) #结果:[22, 33, 44, 55, 66, [77, 88]] #1.2extend,扩展,在列表的末尾添加元素 l2 = [22,33,44,55] #追加单个元素,不能直接添加,参数一定是可迭代的 #l2.extend(66) #T报错:ypeError: 'int' object is not iterable l2.extend([66]) print(l2) l2.extend([77,88]) print(l2) #结果:[22, 33, 44, 55, 66, 77, 88] """ 总结: 列表名.功能名(xx) append可以直接添加单个元素,而extend不能 append在添加多个元素的时候,是以列表的形式添加,而extend只添加元素【打碎加入】 """ #1.3insert,插入,在指定索引处插入一个元素,后面的元素向后顺延 #列表名.insert(索引,被插入的元素) l3 = [22,33,44,55] #插入单个元素 l3.insert(2,66) print(l3) #插入多个元素:和append类似,将整个列表直接插入 l3.insert(1,[77,88]) print(l3)
#2.删除 #2.1pop,弹出,移除并获取列表中指定索引处的元素 在栈中【列表的底层工作原理是栈】 list1 = [11,22,33,44,55] #注意:pop在默认情况下删除的是最后一个元素 result1 = list1.pop() print(list1) print(result1) result2 = list1.pop(2) print(list1) #2.2remove,移除,直接操作的是元素 list2 = [11,22,33,44,55,33,33,55] list2.remove(22) print(list2) #注意:移除指定元素在列表中第一次匹配到的元素【从左往右】 list2.remove(33) print(list2) #2.3clear 清除,将指定列表变为空列表 使用场景:循环中,每次需要清空【重置】列表 list2.clear() print(list2)
#3.获取 list1 = [54,6,57,5,57,7,6,7,57] #3.1len(),获取列表长度 l = len(list1) #3.2max(),获取列表中的最大值 print(max(list1)) #3.3min(),获取列表中的最小值 print(min(list1)) #练习:模拟max或者min的功能,求三个数中的最大值 #假设法 num1 = 43 num2 = 437 num3 = 2 #定义一个变量,用于记录最大值 max1 = num1 if num2 > num1: max1 = num2 if num3 > max1: max1 = num3 #3.4index(),获取指定元素在原列表中第一次匹配到的索引 print(list1.index(57)) #模拟index的功能 for i in range(len(list1)): if list1[i] == 57: print(i) #3.5count(),统计个数,统计指定元素在列表中出现的次数 c = list1.count(57) print(c) list1 = [54,6,57,5,57,7,6,7,57,57,57,436] #练习:将list1中57给全部删除 # list1.remove(57) # list1.remove(57) # list1.remove(57) # print(list1) #统计57在列表中出现的次数 num = 57 c = list1.count(num) n = 1 while n <= c: list1.remove(num) n += 1 print(list1)
import copy #4.其他用法 #4.1.reverse,反转 list1 = [35,4,5,4,654] #print(list1[::-1]) # list1.reverse() # print(list1) #4.2.1sort,排序,默认为升序,在列表内部进行排序 #列表名.sort() #升序 # list1.sort() # print(list1) #降序 # list1.sort(reverse=True) # print(list1) #4.2.2sorted,排序,默认为升序,生成了一个新的列表 #sorted(列表名) #升序 newList = sorted(list1) print(list1) print(newList) #降序 newList2 = sorted(list1,reverse=True) print(newList2) #根据元素的长度进行排序 list2 = ["gjsrghj","545","fhghg","ahjegrhkwjhgrke"] #key关键字参数可以指定自定义的排序规则,格式:key=函数名 newList3 = sorted(list2,key=len,reverse=True) print(newList3) #4.3copy,拷贝 #直接赋值,浅拷贝,栈空间层面上的拷贝【引用】 list1 = [23,54,56] list2 = list1 list2[1] = 100 print(list1) print(list2) print(id(list1) == id(list2)) #copy,深拷贝,堆空间层面上的拷贝【实体】 list1 = [23,54,56] list2 = list1.copy() list2[1] = 100 print(list1) print(list2) print(id(list1) == id(list2)) #模块copy ,copy(),deeepcopy()【面试题】 #内容角度上的拷贝,copy只拷贝最外层,deepcopy可以拷贝内层的内容【二维列表中】 a = [1,2,3] b = [4,5,6] c = [a,b] print(c) d = copy.copy(c) print(id(d) == id(c)) #False e = copy.deepcopy(c) print(id(e) == id(c)) #False a.append(4) print(c) print(d) #[[1, 2, 3, 4], [4, 5, 6]] print(e) #[[1, 2, 3], [4, 5, 6]] """ d:[[1, 2, 3], [4, 5, 6]] [list1,list2]---->list1:[1,2,3] list2:[4,5,6] """ #4.4转换 #list(),tuple() #二维列表:遍历 l1 = [[11, 22, 33, 44], [44, 55, 66]] print(l1[0]) #l1[0] = [11, 22, 33, 44] print(l1[0][2]) for i in l1: for j in i: print(j) for n1 in range(len(l1)): for n2 in range(len(l1[n1])): print(l1[n1][n2])