对于多次重复的程序内容,我们可以使用循环,以只写一次代码而执行多次。
for loop:
最典型的for loop长这样:
for i in range(start, end, optional: step):
<loop body>
其中,start和end是起始与结束的数字(int),在循环中,每一个循环都会用i表示循环的指针(index),而i就会从start以每个循环step个数逐次递增,知道i=end。i<end 的判断是在循环开始之前做的,因此在最后一个循环中,i = end – 1。
- 对于每一个for循环:开始的时候判断 i<end 是否正确;结束的时候执行i = i + step。
for的一个变种:
对于list, str, tuple等能够通过index查找内容的变量,我们可以这样做:
A = [1, 2, 3, 4]
for i in A:
<loop body>
这里,i 会逐个指向A这个list的对应值:
第一个循环,i = A[0] = 1;
第二个循环,i = A[1] = 2;
第三个循环,i = A[3] = 3;
….
不过,需要注意的是,此时的i 仍然受到immutable 和mutable变量类型的限制。因此在使用这种循环时需要注意小心轻易改变i的值。
Note:
– 我们不能对dict类型的变量使用变种for循环,因为dict中每一对key-value都是平等的,不存在先后顺序,也不存在index。
– i的目的是count,可以用各种名字。
While Loop:
While (Loop Condition):
<Loop Body>
while循环中我们不被限制于i,只要loop condition(一个得出bool类型返回值的语句)被满足,循环就会继续。但反之也会带来更大的死循环(无法跳出循环)的可能。这种循环使用时一定要保证在loop body中可以让loop condition向返回true而靠近。