Python 中的循环语句有 for
和 while
。
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进程。