程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次。
Python提供了for循环和while循环(在Python中没有do...while循环):
举一个简单的例子,假设要打印1~100的所有数字,如果没有循环的话,就需要如下方式来实现
print 1
print 2
print3
......
print 99
print 100
但是,如果准备用这种笨方法也就不会学习Python循环了,是吧?
首先,我们尝试用for循环来做一下
for i in range(0,100):
print(i)
但是,打印结果为0~99,不符合我们的需求。
原来range函数的工作方式类似于分片,只包括下限,不包括上限。range(0,100)包含了0,但是没有包含100,那么我们需要调整一下,把range(0,100)改为range(1,101)就可以满足需求了。
我们再用while循环来实现
代码如下:
x=1
while x<=100:
print(x)
x+=1
运行结果,也满足了需求。那么for循环和while循环有什么区别呢?
我们再举个例子,现在我们要判断用户是否输入了名字,如果没有输入名字,就需要提示用户输入名字,用for和while怎么实现呢?
先看看while循环实现的代码:
name=''
while not name or name.isspace():
name=input('请输入你的名字:')
print('你好!',name)
while not name or name.isspace():”可以用“while not name.strip():”来替换,效果一样的。
如果我们用for循环来实现,该怎么做呢?
&*%……~!)&~&)
尝试了半天,没法实现,谁实现了告诉一下我。
再举一个例子,打印一个1~10的数组,选择只打印小于5的对象
for循环实现如下:
for i in range(1,11):
if i<5:
print(i)
continue
for循环也可以这样实现:
for i in range(1,11):
if i>=5:
break
print(i)
执行结果都是一样的
PS:
Python continue语句跳出本次循环
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没有被完全地执行完,也会停止执行循环语句。
我们用while循环来尝试一下:
x=1
while x<=10:
if x<5:
print(x)
x+=1
continue
同样,尝试另外一种方式
x=1
while x<=10:
if x>=5:
break
print(x)
x+=1
第二种方式,做了一下调优,执行完了再给x+1,避免了打印结果滞后。
现在,要打印0~10,但是在打印某个的时候,停顿一下,比如说到5的时候,停顿一下
for循环代码如下:
for i in range(1,11):
if i==5:
pass
print('让我歇一会,停顿了')
print(i)
while循环代码如下:
x=1
while x<=10:
if x==5:
pass
print('让我歇一会,停顿了')
print(x)
x+=1
pass是空语句,是为了保持程序结构的完整性。
pass不做任何事情,一般用做占位语句
总结··············
while语句非常灵活,它可以用来在任何条件为真的情况下重复执行一个代码块。一般情况下这样就够用了,但是有些时候还得量体裁衣。比如,要为一个集合(序列或其他可迭代对象)的每个元素都执行一个代码块。
如果能使用for循环,就尽量不要用while循环啦。