容器的基本特征:一个容器型的数据可以同时保存多个其他的数据
元素:容器中每一个独立的数据就是一个元素
列表:是容器型数据类型(序列):将[]作为容器的标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…] 。
特点:列表是可变的(元素的个数、值和顺序可变)增,删,改;列表是有序的。
要求:没有要求(不管什么类型的数据都可以作为列表的元素)
查:获取元素
种类:获取单个元素,切片,遍历(一个一个的取)
获取单个元素
任何结果是列表的表达式,比如:保存列表的变量、具体的列表值等任何结果是列表的表达式,
固定写法
下标又叫索引,是元素在有序序列中位置信息。
Python中有序序列中每个元素都有两组下标值,分别是:从前往后从0开始递增的下标值;从后往前从-1开始递减的下标值空列表
len(列表) 获取列表中元素的个数
代码如下:
scores = [90,89,23,54] print (sum(scores)/len(scores))list1 = [] list2 = [ ] print(type(list1),type(list2)) #<class 'list'> print(bool(list1),bool(list2)) #<class 'list'> print(len(list1),len(list2)) #False Falselist3 = [21,32,32,34,87,90] print(list3) #[21, 32, 32, 34, 87, 90]list4 = [[1,3,4],[3,5,6],[7,8,9]] print(list4) # [[1, 3, 4], [3, 5, 6], [7, 8, 9]]names = ['甄姬','貂蝉','韩信',' 吕布','赵云','后裔','鲁班','狄仁杰'] print(names[1]) #貂蝉 print(names[-1]) #狄仁杰 print(names[5]) #后裔 print(names[-5]) #吕布 #print(names[10]) 下标不能越界for x in names:print(x,end = ' ') # 甄姬 貂蝉 韩信 吕布 赵云 后裔 鲁班 狄仁杰for index in range(len(names)):print(index,names[index],end = ' ') # 0 甄姬 1 貂蝉 2 韩信 3 吕布 4 赵云 5 后裔 6 鲁班 7 狄仁杰for index, item in enumerate(names):print(index,item,end = ' ') # 0 甄姬 1 貂蝉 2 韩信 3 吕布 4 赵云 5 后裔 6 鲁班 7 狄仁杰
# 循环嵌套的执行原则:外循环一次,内循环完整 for x in range(5):for y in range(2, 5):print(x, y)x取值范围:0,1,2,3,4 第1次 x=0: 执行循环体对应的for循环, y取值范围是: 2,3,4第1次 y=2: print(x, y) -> print(0, 2)第2次 y=3: print(x, y) -> print(0, 3)第3次 y=4: print(x, y) -> print(0, 4)内循环结束 第2次 x=1: 执行循环体对应的for循环, y取值范围是: 2,3,4第1次 y=2: print(x, y) -> print(1, 2)第2次 y=3: print(x, y) -> print(1, 3)第3次 y=4: print(x, y) -> print(1, 4)内循环结束
列表.append(元素) - 在列表的最后添加一个元素 列表.insert(下标, 元素) - 在指定下标对应的元素前插入指定元素 """ movies = ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪'] print(movies) # ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪']movies.append('肖生克的救赎') print(movies) # ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪', '肖生克的救赎']movies.insert(2, '沉默的羔羊') print(movies) # ['五十六度灰', '哥斯拉大战金刚', '沉默的羔羊', '桃花侠大战菊花怪', '肖生克的救赎']# 2)批量添加 # 列表1.extend(列表2) - 将列表2元素全部添加到列表1的后面 d(['让子弹飞', '触不可及', 'V字仇杀队']) print(movies) # ['五十六度灰', '哥斯拉大战金刚', '沉默的羔羊', '桃花侠大战菊花怪', '肖生克的救赎', '让子弹飞', '触不可及', 'V字仇杀队']# 练习:将scores中所有的及格的分数提取出来 # [89, 67, 90, 98, 78, 99] scores = [89, 67, 56, 90, 98, 30, 78, 51, 99] scores2 = [] for x in scores:if x >= 60:scores2.append(x) print(scores2)
# 1.使用for和while循环输出 0~100 内所有3的倍数。 print('==================第1题(1)===============') # 方法一 for num in range(0, 100, 3):print(num)# while循环 print('==================第1题(2)===============') num = 0 # 保存3的倍数,默认是0 while True:# 打印3的倍数print(num)num += 3if num >= 100:break# 2. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。 # 234 print('==================第2题(1)===============') for num in range(100, 200):if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0:print(num)for num in range(100, 200):ge = num % 10if ge % 3 == 0:print(num)continueshi = num // 10 % 10if shi % 3 == 0:print(num)print('==================第2题(2)===============') num = 100 while True:if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0:print(num)num += 1if num >= 200:break# 3.统计100~200中十位数是5的数的个数 print('==================第3题===============') count = 0 for num in range(150, 160):count += 1 print(count)# 4. 打印50~150中所有能被3整除但是不能被5整除的数 print('==================第4题===============') for num in range(51, 150, 3):if num % 5 != 0:print(num)for num in range(51, 150, 3):if num % 5 == 0:continueprint(num)# 5.计算50~150中所有能被3整除但是不能被5整除的数的和 print('==================第5题===============') sum1 = 0 for num in range(51, 150, 3):if num % 5 != 0:sum1 += num print(sum1)# 6. 使用循环计算1*2*3*4*...*10的结果。 print('==================第6题===============') sum1 = 1 for num in range(1, 11):sum1 *= num print(sum1)# 7.统计100以内个位数是2并且能够被3整除的数的个数。 print('==================第7题===============') count = 0 for num in range(2, 100, 10):if num % 3 == 0:count += 1print(num) print('个数:', count)# 8.输入任意一个正整数,求他是几位数? # 234 -> 3 234 // 10 = 23 // 10 = 2 // 10 = 0 # 1024 -> 4 1024 // 10 = 102 // 10 = 10 // 10 = 1 // 10 = 0 print('==================第8题===============')num = int(input('请输入一个正整数:'))count = 0while True:num //= 10count += 1if num == 0:break print(count)# 9.判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数) print('==================第9题===============') num = 7 # 方法一:基本逻辑(没有优化) for x in range(2, num):if num % x == 0:print(num, '不是素数')break else:print(num, '是素数')# 方法二:优化循环次数 for x in range(2, int(num ** 0.5) + 1):if num % x == 0:print(num, '不是素数')break else:print(num, '是素数')# 10. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定) # 1 1 2 3 5 8 13 21 34 55 print('==================第10题===============') pre_1 = pre_2 = 1 n = 6 if n == 1 or n == 2:print(1) else:for x in range(n-3):pre_1, pre_2 = pre_2, pre_1 + pre_2print(pre_1 + pre_2)""" pre_1 = 1, pre_2 = 1 n = 6 if n == 1 or n == 2 -> if 6==1 or 6 == 2 -> if False or False -> if False 执行else中的代码:执行for循环:x取值范围是:range(n-3) -> range(6-3) -> range(3) -> 0, 1, 2 (循环3次)第1次循环 x = 0: pre_1, pre_2 = pre_2, pre_1 + pre_2 -> pre_1, pre_2 = 1, 1+1 -> pre_1, pre_2 = 1, 2第2次循环 x = 1: pre_1, pre_2 = pre_2, pre_1 + pre_2 -> pre_1, pre_2 = 2, 1+2 = 2, 3第3次循环 x = 2: pre_1, pre_2 = pre_2, pre_1 + pre_2 -> pre_1, pre_2 = 3, 2+3 = 3, 5循环结束print(pre_1 + pre_2) -> print(3 + 5) -> print(8)from random import randint number = randint(1, 100) # 产生1~100的随机数(游戏中需要猜的数) count = 0 while True:value = int(input('请输入数字(1~100):')) # 玩家输入count += 1if value == number:breakif value > number:print('大了,再小点儿!')else:print('小了,再大点儿!')print('恭喜你猜对了!') if count < 5:print('猜中只用了', count, '次! 棒棒哒~') elif count < 10:print('总共猜了', count, '次~平凡如你~') else:print('天才!你猜了', count, '次!')for循环 """ for 变量 in 序列:循环体(需要重复执行的代码) else:代码段 """ for x in range(10):if x % 2:print(x)""" x取值范围是:0、1、2、3...9 第1次循环 x=0: if x % 2 -> if 0 % 2 -> if 0 -> if False 第2次循环 x=1: if x % 2 -> if 1 % 2 -> if 1 -> if True: print(x) -> print(1) 第3次循环 x=2: ....# 2. range # range(N) [0,N) 步长为1 # range(M,N) [M,N) 步长为1 # range(M,N,step) [M, N) 步长为step# 3.while """ while 条件语句:循环体 else:代码段while True:需要重复的操作if 停止条件:break# 4.continue、break # 5. else
本文发布于:2024-02-08 19:39:55,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170739243368369.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |