你经常需要遍历列表的所有元素,对每个元素执行相同的操作。可使用python中的for循环。如示例:
>>> Hogwarts=['gryffindor','hufflepuff','ravenclaw','slytherin']
>>> for x in Hogwarts #######如果不加 : 就会出现错误哦
SyntaxError: invalid syntax
>>> for x in Hogwarts:
print(x) ####for循环 冒号下,缩进代表循环程序内部!!可包括多个语句。
gryffindor
hufflepuff
ravenclaw
slytherin
简单来说,只要 跟在for 循环 冒号下的 缩进语音 都被python认定为 循环语句。
>>> for x in Hogwarts:
print(x)
print(x.title()+"is a academic. ")
gryffindor
Gryffindoris a academic.
hufflepuff
Hufflepuffis a academic.
ravenclaw
Ravenclawis a academic.
slytherin
Slytherinis a academic. ######python中对输出语句自动换行
Python函数range() 可以生成一系列的数字。
>>> for value in range(1,5):
print(value)
1
2
3
4
range 函数 让python 从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值。
而要想打印数字列表,可使用函数list()将range() 的结果直接转换为列表。如果将range()作为list 的参数,输出将为一个数字列表。
>>> numbers=list(range(5))
>>> numbers
[0, 1, 2, 3, 4]
还可以指定步长。 第一个参数为起始数,第二个参数为终止数,第三个参数为步长。
>>> numbers=list(range(1,11,2))
>>> numbers
[1, 3, 5, 7, 9]
我们来看接下来这两个代码,并比较如下两种代码:
####### 1 ###################
>>> squares=[]
>>> for x in range(11):
square=x**2
squares.append(square)
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
####### 2 ############
>>> square_sp=[]
>>> for x in range(11):
square_sp.append(x**2)
>>> square_sp
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
比较 1 ,2 代码,在创造复杂的列表时,可使用上述两种方法中的任何一种,有时候临时变量会让代码更易读;而在其他情况下,这样做只会让代码无谓地变长。所以在编写过程中,我们应该考虑的是,编写清晰易懂且能完成所需功能的代码;等到审核代码时,再考虑采用更高效的方法。
>>> numbers
[1, 3, 5, 7, 9]
>>> min(numbers)
1
>>> max(numbers)
9
>>> sum(numbers)
25
列表解析:列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
如上述平方和代码,便可以将其改写成一行,就会非常的简单。
>>> square_re=[value**2 for value in range(11)]
>>> square_re
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
要使用这种方法,首先指定一个描述性的列表名,如square_re;然后指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value**2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。