循环关键词
else
完整的for循环:
for 变量 in 序列:
循环体
else:
代码段
完整的while循环:
while条件语句:
循环体
else:
代码段
else的存在并不会影响原来的循环的执行;
如果循环自然死亡,循环结束后会执行else后面的代码段;如果循环是因为遇到break而结束的,
那么else后面的代码就不会执行
for x in range(3):
print('hello!')
if x == 1:
break
else:
print('end!')
练习:判断指定数是否是为素数
x = 7
for a in range(2, x-1):
if x % a == 0:
print('不是素数')
break
else:
print('素数')
列表
1.什么是列表(list)
列表是python中的容器型数据类型;
将[]作为容器的标志,里面多个数据用逗号隔开:[数据1,数据2,数据3,…]
元素:容器中每个独立的数据就是这个容器中的每个元素-支持增,删,改);列表是有序的(支持下标操作)
列表是可变的(元素的个数和顺序都可变)
len(列表): 获取列表中元素的个数
任何类型的数据都可以是列表的元素;同一个列表中的元素的类型可以不相同
list6 = [10, [20, 30]]
print(len(list6)) # 2
查操作
- 查单个 - 获取列表中的一个元素
-
1)语法:列表[下标]
-
2)说明:列表 - 任何结果是列表的表达式,一般是保存列表的变量或者具体某个列表
[] - 固定写法
下标 - 又叫索引,下标就是列表中元素的位置信息。
列表中的每个元素都有两个下标值分别是:从前往后数从0开始不断增加的下标值、从后往前从-1开始不断减小的下标值
movies = ['小森林', "复仇者联盟3", '肖申克救赎', '忍者神龟', '海蒂和爷爷', '我不是药神']
print(movies[-1], movies[-2])
-
遍历 - 一个一个的将列表中的元素全部取一遍
-
方法1:
for 变量 in 列表 :
循环体
for x in movies: print("x", x)
案例1: 打印scores中所有不及格的分数
scores = [78, 19, 80, 92, 99, 45, 67, 87, 49] for x in scores: if x < 60: print('不及格', x)
-
案例2: 统计scores中及格的分数的个数
count = 0
for x in scores:
if x >= 60:
count += 1
print('及格', count)
- 方法2:通过遍历下边来遍历
movies = [‘小森林’, “复仇者联盟3”, ‘肖申克救赎’, ‘忍者神龟’, ‘海蒂和爷爷’, ‘我不是药神’, ‘蜘蛛侠’]
for x in range(len(movies)):
print(x, movies[x])
for x in range(len(movies)-1, -1, -1):
print(x, movies[x])
-
方法3:
movies = ['小森林', "复仇者联盟3", '肖申克救赎', '忍者神龟', '海蒂和爷爷', '我不是药神', '蜘蛛侠'] for a, b in enumerate(movies): print(a, b)
-
切片
-
完整语法:
列表[开始下标:结束下标:步长]
开始下标、结束下标 - 用来确定切片的有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
步长 - 确定获取方式(1.是从前往后取还是从后往前取 2.绝对值大小决定是一个一个的取还是跳着取)
a. 怎么看切片结果
第一步:先确定结果是否为空(看从开始下标到结束下标对应的方向和步长对应的方式是否一致,如果不一致,直接为[]
第二步:确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
第三步:根据步长在有效范围内获取元素
绝对值为1:一个一个的取
绝对值为2:取一个跳一个再取一个
绝对值为3:取一个跳两个再取一个b.通过目标来写切片
第一步:确定开始下标(将目标数据中第一个元素对应的下标作为开始下标)
第二步:确定步长(根据方向确定正负;根据取的时候跳过的方式确定绝对值)
第三步:确定结束下标(如果步长为正,结束下标是取到的最后一个元素后面那个元素的下标;如果步长为负,结束下标是取到最后一个元素前面那个元素的下标) -
省略语法
列表[开始下标:结束下标:步长]
a.省略步长:列表[开始下标:结束下标] - 相当于步长为1
b.省略开始下标:列表[:结束下标:步长] - 表示从起点(步长为正)或者终点(步长为负)开始
c.省略结束下标:列表[开始下标::步长] - 从开始的位置开始一直取完
-
增删改
-
增 - 添加元素
-
1)列表.append(元素) - 在指定列表的最后添加指定元素
list1 = [10, 20]
list1.append(100)
print(list1)
案例:获取scores中所有不及格的分数,以列表的形式返回
scores = [98, 34, 89, 99, 56, 100, 91, 70]
new_scores = []
for x in scores:
if x< 60:
new_scores.append(x)
print(new_scores) -
2)列表.insert(下标,元素) - 将指定元素插入到原列表指定下标对应的元素前
nums = [10, 50, 100]
print(nums)
nums. insert(1, 60)
print(nums)- 删 - 删除元素
- 1)del 列表[下标] - 删除指定下标对应的元素(下表不能越界)
- 2)列表.remove(元素) - 删除指定元素(如果对应的元素有多个,只删除第一个 )
- 3)列表.pop() - 取出列表最后一个元素并且返回
列表.pop(下标) - 取出列表中指定下标对应的元素
print(‘-----------------------------------------------------’)
nums = [10, 50, 100]
del nums[1]
print(nums)
nums. remove(100)
print(nums)
print(‘-----------------------------------------------------’)
nums = [10, 50, 100, 50, 20]
x = nums.pop(-2)
print(nums, x)
改 - 修改某个元素的值
列表[下标] = 值 - 将指定下标对应的元素修改成指定的值
nums = [10, 50, 100, 50, 20]
nums[0] = 15555
print(nums)
-