Python 中的循环语句有 forwhile

for-in循环

Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。

如果明确的知道循环执行的次数或者要对一个容器进行迭代,那么我们推荐使用for-in循环。

例如下面代码中计算1~100求和的结果:

# 用for循环实现1~100求和,1+2+3+4+5+6+...+97+98+99+100 = ?
sum = 0
for x in range(101):
    sum += x
print(sum)

需要说明的是上面代码中的range(1, 101)可以用来构造一个从1到100的范围,当我们把这样一个范围放到for-in循环中,就可以通过前面的循环变量x依次取出从1到100的整数。当然,range的用法非常灵活,例如:

  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
  • range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。
  • range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。
  • range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。

for-in循环依次把list或tuple中的每个元素迭代出来,看例子:

languages = ["C", "C++", "java", "Python"] 
for x in languages:
    print (x)

# 打印结果:
# C
# C++
# java
# Python

while 循环

如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

即:只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。

跳出循环

break 跳出当前循环,直接退出循环

for中:
for 实例中使用了 break 语句,break 语句用于跳出当前循环体:

languages = ["C", "C++", "java", "Python"] 
for x in languages:
    if x== "java":
        print("回忆多啦没有A梦!")
        break
    print("循环数据 " + x)
else:
    print("没有循环数据!")
print("完成循环!")

执行脚本后,在循环到 "java"时会跳出循环体

循环数据 C
循环数据 C++
回忆多啦没有A梦!
完成循环!

while中:
例如,在while中,本来要循环打印1~100的数字,但如果要提前结束循环,可以用break语句:

n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')

continue 提前结束本轮循环,并直接开始下一轮循环

在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
while中:
例如我们要打印出4,3,2,1,0,但是在2时,结束当前这次循环,但不影响后续循环:

n = 5
while n > 0:
    n -= 1
    if n == 2: # 在2时,结束当前这次循环
        continue
    print(n)
print('循环结束。')

输出结果:

4
3
1
0
循环结束。

总结

循环是让计算机做重复任务的有效的方法。

break语句可以在循环过程中直接退出循环
continue语句可以提前结束本轮循环,并直接开始下一轮循环
这两个语句通常都必须配合if语句使用。

有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。