for循环:对数据集执行整体操作,对列表中的每个元素都执行相同的操作(对列表中的每个元素,都将执行循环指定的步骤,而不管列表包含多少个元素),如
magicians=['alice','david','carolina'] for magician in magicians:#分清单复数的含义 print(magician)
for循环可以与其他语句结合使用,如:
magicians=['alice','david','carolina']
for magician in magicians:#不要漏掉冒号
print(f'{magician.title(),that was a great trick!}')
print(f'I can't wait to see your next trick,{magician.title()}.n')
print('Thank you, that was a great magic show!')#没有缩进的代码只执行一次
备注:两个print()都缩进,表示每个缩进的代码行都是循环的一部分,将针对列表中的每个值都执行一次,其中第二个函数调用print()中的换行符"n",表示每次迭代结束后都插入一个空行
for循环中缩进错误-
忘记缩进,报错:IndentationError: expected an indented block
-
忘记缩进额外的代码行:不会错,但有逻辑错误(没有针对每一个元素执行操作)
-
不必要的缩进,报错:IndentationError: unexpected indent
-
循环后不必要的缩进:本不需要缩进,但缩进了
-
for循环漏掉冒号
将数字存储在列表中
函数range()生成数函数range()使python从指定的第一个值开始数,并在到达指定的第二个值时停止,如果输出不符合预期,可以将指定的值加1或减1,如
for value in range(1,5): print(value)#输出结果为1到4创建数字列表
使用list()将range()的结果直接转换为列表,将range()作为list()的参数
numbers=list(range(1,6)) print(numbers)
给range()函数指定第三个参数,可以指定步长
even_numbers=list(range(2,11,2))#打印1-10的偶数,从2开始数,不断加2,直到达到或超过终值11 print(even_numbers)
squares=[]#创建名为squares的空列表 for value in range(1,11):#使用range()函数遍历1-10的值 square=value**2#在循环中,计算当前值的平方,并将结果赋给临时变量square末尾 squares.append(square) print(squares)#创建包含1-10几个整数的平方
备注:在python中,2的立方用2**3表示
临时变量square可以使代码更易读,但也会让代码变长,因而在编写使清晰易懂,在审核时,可以采用更高效的方法,如:
squares=[] for value in range(1,11): squares.append(value**2)#直接将计算的平方值附加到列表squares末尾对数字列表执行简单的统计计算
digits=[1,2,3,4,5,6,7,8,9,0] print(min(digits)) max(digits) sum(digits)列表解析
将for循环和创建新元素的代码合并为一行,如
squares=[value**2 for value in range(1,11)]#for语句末尾没有冒号 print(squares)
备注:首先指定列表名squares,然后指定方括号,定义表达式(用来存储列表中的值),此处为value**2,编写for循环。将值提供给已定义过的表达式
处理列表中部分元素——切片切片:访问并处理列表中的部分元素,可指定要使用的第一个元素和最后一个元素的索引,python元素从0开始,到达第二个索引之前的元素后停止
- 提取列表的2、3、4个元素
players=['charles','martina','michael','florence','eli'] print(players[1:4])
- 不指定起始索引,从第一个元素开始提取
players=['charles','martina','michael','florence','eli'] print(players[:4])
- 不指定终止索引,从指定起始索引提取到列表末尾的所有元素
players=['charles','martina','michael','florence','eli'] print(players[2:])
- 负数索引返回列表末尾相应距离的元素
players=['charles','martina','michael','florence','eli'] print(players[-3:])#需输出列表最后三个元素结合for循环遍历切片
如便利前三个元素:
players=['charles','martina','michael','florence','eli']
print('Here are the first three players on my team:')
for player in players[:3]:
print(player.title())
复制列表
目的:根据既有列表创建全新的列表,而不是原有列表直接赋值为新列表,便于操作
同时省略起始索引和终止索引[:],python可创建一个始于第一个元素、终止于最后一个元素的切片,即整个列表的副本
my_foods=['pizza','falafel','carrot cake']
friend_foods=my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print('My favorite foods are:')
print(my_foods)
print('nMy friend's favorite foods are:')
print(friend_foods)
元组
备注:列表适合存储在程序运行期间可能变化的数据集,可以修改;
定义元组python中不能修改的值为不可变的,而不可变的列表被成为元组:使用圆括号()表示,如
dimensions=(200,50) print(dimensions[0]) print(dimensions[0])
元组是由逗号标识的,创建只包含一个元素的元组通常没有意义,自动生成的元组有可能只有一个元素
遍历元组中的所有值访问方式、for循环使用方式与访问列表元素相同,如
dimensions=(200,50)
for dimension in dimensions:
print(dimension)
修改元组变量
不能修改元组的元素,但可以给存储元组的变量赋值,重新定义整个元组,如
dimensions=(200,50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions=(400,100)
print("nModified dimensions:")
for dimension in dimensions:
print(dimension)



