1.遍历整个列表
1.1 for循环介绍
首先看一个例子,建立一个NBA球员列表(包括杜兰特、勒布朗、乔丹),打印列表中的每一个元素,并在最后说明他们都是伟大的球员。
1players=['Durant','LeBron','Michael']
2for player in players:
3 print(player)
4print('They are great basketball players!')
输出结果:
1Durant
2LeBron
3Michael
4They are great basketball players!
for循环使得print(player)这行代码执行了三次,每执行一次,列表的一个元素就会被存到变量player中,然后通过打印这个变量player打印出列表中的元素。对于列表中的每一个元素,都会执行循环中的指定步骤,这个“指定步骤”指的是for循环冒号(:)以下的所有缩进的代码,例如在本例中,冒号以下的所有缩进的代码就只有一行: print(player),因此这行代码执行了三次。而未缩进的代码则不处于for循环得指定步骤之中。
Tip:编写for循环的第一句时,最后使用单数和复数式的名称来区别列表名和变量名。例如:
1for cat in cats:
2for dog in dogs:
下面编写稍微复杂一点的例子。仍然使用上面定义的球员列表,使用for循环完成以下任务:对于每一位球员都打印一条信息,指出他打球实在是太厉害了,然后再打印一条信息告诉他,我上我也行。最后以呵呵作为结尾。
输入:
1players=['Durant','LeBron','Michael']
2for player in players:
3 print(player.title()+',you play basketball very NB!')
4 print('But I have to say:I up I can ,too.'+player.title())
5print('hehe')
输出:
1Durant,you play basketball very NB!
2But I have to say:I up I can ,too.Durant
3Lebron,you play basketball very NB!
4But I have to say:I up I can ,too.Lebron
5Michael,you play basketball very NB!
6But I have to say:I up I can ,too.Michael
7hehe
1.2 for循环格式常见错误
1.缩进错误
前文已经进行了介绍,在python中,是根据缩进来判断代码行与前一个代码行的关系的,有缩进代表着本行代码属于前一行代码.因此要注意for循环中不能丢失缩进,同理在其他代码中也不能随意添加缩进.
丢失缩进示例:
1players=['Durant','LeBron','Michael']
2for player in players:
3print(player.title()+',you play basketball very NB!')
结果会显示错误:
1File "C:/Users/user/PycharmProjects/test1/learn3.py", line 9
2 print(player.title()+',you play basketball very NB!')
3 ^
4IndentationError: expected an indented block
多余的不必要缩进示例:
1message='Hello world'
2 print(message)
结果显示:
1File "C:/Users/user/PycharmProjects/test1/learn3.py", line 12
2 print(message)
3 ^
4IndentationError: unexpected indent
2.遗漏冒号
如果在for循环中遗漏了冒号,也会导致语法错误,例如:
1players=['Durant','LeBron','Michael']
2for player in players
3 print(player.title()+',you play basketball very NB!')
输出:
1File "C:/Users/user/PycharmProjects/test1/learn3.py", line 8
2 for player in players
3 ^
4SyntaxError: invalid syntax
2.创建数值列表
2.1 使用函数range()
函数range()能够生成一系列数字,例如:
1for value in range(1,5):
2 print(value)
3
输出:
11
22
33
44
注意到,在本例中,range(1,5)只是打印了1-4,这是经常在编程语言中看到的差一行为.函数range()让python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不含第二个值(这里为5).要打印1-5,则应该使用range(1,6).
同时,使用函数range()时,还可以指定步长,例如,下面的代码可以打印从1开始,依次加2,达到9结束的一个等差数列:
1for value in range(1,10,2):
2 print(value)
3
输出:
11
23
35
47
59
2.2 使用range()创建数字列表
使用函数list()直接将range()的结果转换为列表,将range()作为list()的参数,输出一个数字列表.
1numbers=list(range(1,13,3))
2print(numbers)
输出列表:
1[1, 4, 7, 10]
下面利用创建一个更复杂的列表,它包含了1-10每个数的乘方.在python中乘方运算是由(**)表示的.
输入:
1numbers=[]
2for number in range(1,11):
3 numbers.append(number**2)
4print(numbers)
输出:
1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
本例中,还可以这样编写代码:
1numbers=[]
2for number in range(1,11):
3 value=number**2
4 numbers.append(value)
5print(numbers)
在for循环中先引入一个变量用来存储数据,在将变量存入列表中,最后输出结果是一样的.
2.3 对数字列表执行简单的统计计算
有几个专门处理数字列表的函数,可以轻松的找到数字列表的最大值,最小值和总和.
1numbers=list(range(1,10))
2print(numbers)
3print(max(numbers))
4print(min(numbers))
5print(sum(numbers))
输出:
1[1, 2, 3, 4, 5, 6, 7, 8, 9]
29
31
445
2.4 列表解析
列表解析是一种进阶的语法,可以使用一行代码就生成一个列表,它融合了for循环和创建新元素的代码.例如,下面的示例使用一行代码创建前文中创建的平方数列表:
1numbers=[number**2 for number in range(1,11)]
2print(numbers)
输出:
1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用这个语法,首先要定义一个描述性的列表名,如numbers,然后指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值,在这个实例中,表达式为number**2.接下来,编写一个for循环,用于给表达式提供值,再加上右方括号,在这个实例中,for循环为for number in range(1,11),它将1-10提供给表达式.请注意,这里的for循环没有冒号.
本文介绍了Python基础语法中的列表遍历,使用for循环展示NBA球员列表,强调缩进和冒号在语法中的重要性。接着讲解了如何用range()创建数字列表,进行数值统计计算,并通过列表解析生成平方数列表,提高编程效率。
1319

被折叠的 条评论
为什么被折叠?



