Python 的while 循环与if条件分支类似,不同的是,只要条件为真,while循环会一直重复执行一段代码,这段代码称为循环体。
while 循环语句的语法如下:
while 条件:
循环体
下面代码将打印1+2+3+···+100的计算结果:
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
设计循环体的时候要考虑退出循环的条件,例如上面代码中,每执行一次循环体的代码,变量i的值就会加1,这样i的值从1到2到3不断递增,直到i等于101的时候,条件不再成立,便可以退出循环。
如果上面代码的循环体中缺少i+=1语句,循环将永远也不会退出(除非将程序强制关闭),也称为死循环。死循环会占用大量的CPU时间,并让程序一直“卡”在那儿。
例如下面代码会让程序“假死”:
while True:
pass // pass是个占位语句,表示它不做任何事情,但是在有些程序设计中,死循环又是必不可少的特性。例如服务器,负责网络收发的程序必须7×24 小时待命,随时准备接收新的请求并分派给相关的进程,毕竟通常的网站是没有“打烊”一说的。再如游戏开发,通常也是放置一个死循环,只要游戏没结束,就会不断地接收用户的操作命令,并做出响应。
for 循环语句
接下来谈谈 Python 的 for 循环语句,虽然说大多数编程语言都有一个for循环语句,功能也是大同小异,但是 Python 的 for循环却显得更为智能和强大!
for 循环语句的语法如下:
for 变量 in 可迭代对象:
循环体
所谓可迭代对象,就是指那些元素可以被单独提取出来的对象,如目前最熟悉的字符串,像“love”就是由“l”“o”“v”“e”四个字符元素构成的。那么,for循环语句每执行一次就会从该字符串(可迭代对象)中拿出其中一个字符,然后存放到变量中。
>>> for each in "love":
print(each)
l
o
v
e
如果想要通过 for 语句来实现打印1+2+3+4+···+100的计算结果,可不能像下面样写:
sum =
fox i in 100:
s um 十= i
print(sum)
因为100是一个整数,它不是“可迭代对象”,所以Python会直接报错:
Traceback (most recent call last):
File "C:UsersgoodbDesktoptest.py", line 2, in
for i in 100:
TypeError:"int" object is not iterab1e
想要实现也并不难,但需要先来认识一下for语句的一个小伙伴—range()。
range(是一个BIF函数,它可以为指定的整数生成一个数字序列(可迭代对象),语法如下:
range(stop)
range(start, stop)
range(start, stop, step)
range(有三种用法,但无论选择哪一种,它的参数只能是整数。
第一种用法是只有一个参数的情况,它会生成从0到该参数的数字序列:
>>> list(range(10) )
[0,1, 2,3,4,5,6,7,8,9]
注意:
list是将可迭代对象以列表的形式展示出来。