2021/12/20 12/21
目录
一、使用for循环遍历列表
for cat in cats:
print(cat+',i love it very much')
要点在于:是否缩进 决定了是否参与前面的for循环
二、避免缩进错误
python是根据缩进判断代码关系的
1.未缩进
出现问题:for 循环中没加缩进,会报错,在学习笔记1中提到过
代码报错:SyntaxError: invalid syntax
解决方法:加缩进即可,需注意所有循环内语句都需要缩进
2.不必要的缩进
如print,缩进反而会报错
代码报错:IndentationError: unexpected indent
3.for 漏了冒号
笔者学习阶段经常出现这种错误
代码报错:SyntaxError: invalid syntax
places=['hf','nj','bj','aq','wh']
for place in places:
print('I want go to '+place)
print(place+' is a good place')
print('i love travelling')
三、创建数值列表
1.range()
例:用for循环打印1~20(含)
for value in range(1,21):
print(value)
注意:range含头不含尾,也可以指定步长
2.range和list函数结合使用生成数字列表
例:创建一个列表,其中包含数字1~1 000,000,再使用一个for循环将这些数字打印出来
values=list(range(1,1001))
for value in values:
print(value)
两种结合可以产生很多组合,包括奇数偶数组,平方组等等
3.对数字列表进行简单计算
min() max() sum()
4.列表解析:用尽可能短的语言生成列表
例:创建一个列表,其中包含前10 个整数(即1~10)的立方,再使用一个for循环将这些立方数都打印出来
普通方法:
values=[]
for value in range(1,11):
value=value**3
values.append(value)
print(values)
或者更简单一些:
values=[]
for value in range(1,11):
values.append(value**3)
print(values)
列表解析方法:
values=[value**3 for value in range(1,11)]
print(values)
把创建新元素和for循环直接在一行实现了,更简洁
四、使用列表的一部分
1.切片操作
place[0:3]
切片操作很灵活,[:5] [3:] [:] [-3:]都是允许的操作,即可以通过切片获得列表任意子集
亦可使用for循环遍历切片,以便输出
注意:在复制列表副本时,使用切片和直接复制有根本区别,
前者只是转移元素,后者两个列表指向是相同的,意味着不能分开操作
切片:
value1=list(range(0,5))
value2=value1[:]
value1.append(5)
value2.append(6)
print('value1 is ')
for value in value1:
print(value)
print('\nvalue2 is ')
for value in value2:
print(value)
输出:
value1 is
0
1
2
3
4
5
value2 is
0
1
2
3
4
6
复制操作:
value1=list(range(0,5))
value2=value1
value1.append(5)
value2.append(6)
print('value1 is ')
for value in value1:
print(value)
print('\nvalue2 is ')
for value in value2:
print(value)
结果:
value1 is
0
1
2
3
4
5
6
value2 is
0
1
2
3
4
5
6
五、元组
元组是不可修改的列表,使用圆括号进行标识
元组的遍历和列表完全相同
元组元素不可修改,会报错:
'tuple' object does not support item assignment
但是重新给元组变量赋值是合法的