您的位置:

Python For循环的语法和用法

一、For循环的基本语法

for i in range(start, end, step):
    # 循环体

对于Python的For循环,其基本的语法非常简单。使用关键字for,接下来加上一个循环变量i,然后使用in关键字与一个集合相连,这个集合可以是列表、元组、字符串等容器类型。最后用英文冒号:结束这一行,下一行则是循环体语句,在这里要注意,Python强制使用缩进进行代码块划分。当程序在执行到for这一行时,它会将集合中的每一个元素依次赋值给循环变量i,并执行循环体代码,当集合中的元素全部遍历一遍后,整个循环结束。

其中range(start, end, step)是Python中常用的内置函数。第一个参数是起始值,第二个参数是终止值,不包含终止值,第三个参数是步长。例如,range(0,10,2)可以生成一个从0到10(不包含10)的序列,步长为2,即序列为0,2,4,6,8。

二、在循环中使用break和continue

在For循环中,也可以使用breakcontinue关键字来改变程序的执行流程。

break的作用是立即结束整个循环,直接跳出循环体。

for i in range(5):
    if i == 3:
        break
    print(i)

上面的代码使用For循环遍历序列range(5),一旦i的值等于3,就立即结束循环。在控制台中,会输出0,1,2。

continue的作用是跳过本次循环,直接执行下一次循环。

for i in range(5):
    if i == 3:
        continue
    print(i)

上面的代码使用For循环遍历序列range(5),一旦i的值等于3,就跳过这一次循环。在控制台中,会输出0,1,2,4。

三、在For循环中使用else

Python中唯一的一种配合For循环的else语句,是在循环完整个序列后(或者遍历一个空序列后)执行,如果循环中使用了break关键字,else语句将不会执行。以下代码演示了For循环是如何配合else语句使用的:

for i in range(5):
    if i == 3:
        break
else:
    print('循环结束')

上面的代码当i的值等于3时,For循环执行break语句跳出循环,因此else语句不会执行。如果break关键字被注释掉,就会在控制台中输出“循环结束”。

四、在For循环中使用zip函数并行遍历多个列表

有时候需要同时遍历多个列表,比如下面这个例子:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
list3 = ['A', 'B', 'C']
for i in range(len(list1)):
    print(list1[i], list2[i], list3[i])

上面代码用i作为循环变量遍历了list1,然后使用索引i访问其他两个列表中的元素。输出结果为:

a 1 A
b 2 B
c 3 C

这种方式不太优雅,也容易出错,如果列表元素个数不同不好处理。为此,Python提供了一个zip函数,可以将多个列表中的元素并行遍历出来,如下所示:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
list3 = ['A', 'B', 'C']
for a, b, c in zip(list1, list2, list3):
    print(a, b, c)

上面的代码使用zip函数并行遍历了三个列表中的元素,并将它们组装成了一个元组。输出结果与上面的方法相同,但是代码更加简洁可读。

五、使用enumerate函数来获取序列元素的索引

在遍历一个序列时,有时候需要访问序列元素本身以及其索引。在这种情况下,使用Python提供的enumerate函数可以轻松地实现这一目标,如下所示:

myList = ['apple', 'banana', 'cherry']
for index, value in enumerate(myList):
    print(index, value)

上面的代码中,使用enumerate函数获取了列表myList的元素及其索引。在循环体中可以使用indexvalue两个变量表示元素索引和元素本身。输出结果如下所示:

0 apple
1 banana
2 cherry

六、循环嵌套

循环嵌套指的是在一个For循环中再嵌套另一个For循环,以此类推。循环嵌套在很多场合下都是比较常见的编程模式。如下面的代码演示了两个For循环嵌套的情况:

for i in range(1, 6):
    for j in range(1, i+1):
        print("*", end="")
    print("")

上面的代码中,第一个For循环控制行数,第二个For循环控制行中的每一个星号(*)的个数,并以每一行结束时的换行符作为分隔。在控制台中输出如下效果:

*
**
***
****
*****

七、总结

For循环是Python编程中经常使用的一种结构,具有简单明了的语法和性能优异的特点。在开发实践中,也有很多常用的技巧和操作,比如breakcontinue关键字、else语句、zip函数和enumerate函数等。熟练掌握For循环的语法和用法,可以帮助我们更加高效地编写Python程序。