continue语句
作用:
用于循环语句(while,for)中,不再执行本次循环内continue之后的语句,重新开始一次新的循环。说明:
1、在while语句中执行continue语句,将会直接跳转到while语句的真值表达式处重新开始一次判断循环条件
2、在for循环中执行continue语句,将会从可迭代对象中取下一个数据绑定变量后再次进行循环
列表
定义:
1、列表是一种容器
2、列表是可以被改变的序列容器
3、列表由一系列元素组成的,元素与元素之间可能没有任何关联关系,但它们有序列关系
4、list(interable) 用可迭代对象创建一个列表
注意:
在Python3中range()函数返回的是一个可迭代对象(类型是对象),而不是列表类型,所以打印的时候不会打印成列表
在Python3中list()函数是对象迭代器,可以把range返回的可迭代对象转化为一个列表,返回的变量类型为列表
但在Python2中range()返回的是列表
列表的运算
1、算术运算符
+ += * *=
①、+ 用于拼接列表
②、+= 用于原列表与右侧可迭代对象进行拼接,用变量绑定列表
列表 += 列表
③、*生成可重复的列表
④、*= 生成重复的列表,并对原来的列表进行赋值
2、比较运算符
运算符:< <= > >= == !=
说明:
列表的比较规则与字符串的比较规则相同
列表要求每两个元素能依次进行比较,否则会出现类型错误
列表的索引操作
1、索引取值
语法:
x = 列表[整数表达式]
用法:
等同于字符串的索引,
2、索引取值
列表是可变序列,可以通过索引赋值改变列表中的元素
语法:列表[整数表达式] = 表达式
3、列表切片操作
①、切片取值
列表[起始索引:终止索引:步长]
列表的切片取值是从原来列表中取出想要的元素再次组成一个新的列表
②、切片赋值操作
作用:改变原来列表的排序,插入或修改
语法:
如:L = [1,2,3,4,5,6]
L[::2] = 'ABC'
print(L)
结果['A',2,'B',4,'C',6]
L[::2] = 'ABCD' #这一句则会报错 ,赋值太长 size 4 to extended of size 3
for 变量2 in 可迭代对象 if 真值表达式
列表推导式
列表推导式是用可迭代对象创建列表
作用:创建列表
语法:表达式 for 变量2 in 可迭代对象 if 真值表达式
#生成一个1~9的平方的列表L = [ x ** 2 for x in range(1,10)]print(L)#生成一个1~9的平方的列表(只要奇数的平方)L1 = [x**2 for x in range(1,10) if x%2 = 1]print(L1)
del 语句
可以用于删除列表中的元素
语法:
del 列表[整数表达式]
del 列表[切片]
练习:已有列表 L = [ 3,5]
用索引和切片操作,将原列表改变为:
L = [1,2,3,4,5,6]
将列表反转,如下 L =[6,5,4,3,2,1]
然后删除最后一个元素,结果如下 L=[6,5,4,3,2]
L = [3,5]print(L)L[1:1] = [4]print(L)L[0:0] = [1,2]print(L)L[5:5]=[6,7,8,9]print(L)print("列表反转开始")print(L[::-1])print("反转结束")print(L)L.reverse()print('用函数反转',L) #注:在print中如print(" ",L.reverse):reverse在print中将不会执行,还会返回nonetype。运行结果:[3, 5][3, 4, 5][1, 2, 3, 4, 5][1, 2, 3, 4, 5, 6, 7, 8, 9]列表反转开始[9, 8, 7, 6, 5, 4, 3, 2, 1]反转结束[1, 2, 3, 4, 5, 6, 7, 8, 9]用函数反转 [9, 8, 7, 6, 5, 4, 3, 2, 1]
:列举部分
len(x) 返回序列长度
max(x) 返回序列的最大值元素
mix()
sum(x) 返回序列的所有元素和:元素必须是数字类型
any() 真值测试,如果列表中的一个值为真值则返回true
练习:
写程序,让用户输入很多个正整数,当输入负数时结束输入,将用户输入的数字放在列表中
1、打印这个列表
2、求这些数字平均值
3、求出这个列表最大值
如:请输入:1
请输入:2
请输入:99
请输入:-1
打印如下:
列表是:[1,2,99,100]
平均值是:
最大值是:
L=[]while True: i = int(input('请输入:')) if i < 0: #判断,如果小于0,退出,切不赋值 break L[len(L):len(L)] = [i] #或者 L.append(i)print('打印如下')print('列表是',L)print('平均值是',sum(L)/len(L))print('最大值是',max(L))运行结果:请输入:1请输入:3请输入:5请输入:7请输入:-1打印如下列表是 [1, 3, 5, 7]平均值是 4.0最大值是 7
列表中常用的方法
1 | 在列表末尾添加新的对象,没有返回值,修改了原来的列表 |
2 | 统计某个元素在列表中出现的次数,返回元素在列表中出现的次数 |
3 | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),没有返回值,但会在已存在的列表中添加新的列表内容 |
4 | 从列表中找出某个值第一个匹配项的索引位置 |
5 | 将对象插入列表 |
6 | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | 移除列表中某个值的第一个匹配项 |
8 | 反向列表中元素 |
9 | 对原列表进行排序 reverse=True 降序 reverse 升序 |
10 | 清空列表 |
11 | 复制列表 |
注:此列表引用自菜鸟教程
列表操作的综合练习
编写一个名字管理系统
功能要求:1、添加一个新名字
2、删除一个名字
3、修改一个名字
4、查询一个名字
5、退出系统 输入非数字会报错
NmneList=['小明','小强','小朱'] print("首先列表里面有",NmneList)while True: i=int(input('输入您要进行的操作:1、添加 2、删除 3、修改 4、查询 5、退出: \n')) if i == 1: print("输入你要添加的名字:") name = input() NmneList.append(name) print('添加后的名字列表:',NmneList) elif i == 2: print("输入你要删除的名字:") name = input() if name in NmneList: NmneList.remove(name) else: print('没有这个名字') print('删除后的名字列表:\n', NmneList) elif i == 3: print("输入要被修改的名字:\n") name = input() if name in NmneList: xg = input('输入要被修改成什么名字:\n') T=NmneList.index(name) NmneList[T] = xg print('添加后的名字列表:\n', NmneList) else: print('没有这个名字') elif i == 4: print("输入你要查询的名字:\n") name = input() if name in NmneList: print(name,'在第', NmneList.index(name)+1,'个位置') else: print(name,"不存在") print("列表依然为",NmneList) elif i == 5: print("输入了5,退出程序") break else: print("输入了错误的数字")
元组:
1、不可变的序列
t3=()t4=(13,)t1=200,42,55,69,78t2=(52) #绑定整数52,不是元组print(type(t1),type(t2))print(t1)x,y,z=(1,2,3)print(x,y,z)
元组的构造函数tuple
tuple() 生成一个空元组
tuple(interable) 用可迭代对象生成一个新的元组
t1 = tuple('abc')print(t1)
7、元组的运算,比较运算,索引和切片,与列表完全相同
注:
元组不支持索引赋值和切片赋值