程序在一般情况下是按顺序执行的。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许我们执行一个语句或语句组多次。

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循环啦。