while循环运用场景:假设现在需要你算出1-9977之间所有的数字累计求和。

while循环语法:

while 判断条件:
    执行语句……

点击查看代码

"""
while 循环


while 条件判断:
        如果条件成立就执行里面的代码


    while 条件判断:
        条件成立执行
    else:
        条件不成立执行

"""

代码示例:

定义变量

i = 1

while i < 100:

print(i)

i += 1  # i = i + 1

else:


print("100拉不成立了!") # 结合具体的业务场景来进行选择

代码示例:

a = 1
while a < 10: # 当 a >= 10 时,条件不成立
    print(a)
    a += 2  # 等价 a = a + 2

输出:1 3 5 7 9,下面是详细执行流程:

python while循环用法 pythonwhile循环用法a=1_死循环

分析上面的代码:

先定义一个变量

当while循环之后是条件表达式,如果条件满足条件,就会继续执行while内的代码,执行完所有while内的代码后,又重新回到第二行,再次检查条件 a 是否小于10 ,条件是否成立;

1.当a < 10 条件不成立时,则跳出 while 循环,由于循环之外没有任何代码,所以会直接退出程序;

2.当 a < 10 条件成立时,则继续执行 while 循环内部的 +2 操作;

有了以上基础知识以后,我们再回头解决一下上面提到的问题,计算1-9977的和如何解决?

#计算1-9977的和
a = 1
sum = 0
while a < 9977:
    # 当a >= 9977 时条件不成立,跳出循环,
    # a 的值每次加1,如果要 >= 9977 ,意味着要循环 9977 次
    # print(a)
    a += 1   # 等价 a = a + 1,a的值每次累计加 1
    sum += a # 等价 sum = sum + a
 
print("while循环一共执行了 %d 次" % a)  # a 的值每次加1 ,
print("1~99777之间所有的数字累计求和的结果是:{}".format(sum))

'''
输出结果:
while循环一共执行了 9977 次
1~9977之间所有的数字累计求和的结果是:49775252
'''

while循环案例练习

代码示例:

"""
使用while循环在终端输出 5 * 5 的矩形
    *****
    *****
    *****
    *****
    *****

"""
i = 1
while i <= 5:
    j = 1
    while j <=5:
        if j == 5:
            # 最后一个不用加空格
            print("*",end="")
        else:
            print("*  ",end="")
        j += 1
    print("")
    i+=1

用 while 循环打印三角形

代码示例:

"""
while 打印三角形
"""
# 控制行数
i = 1
while i<=5:
    # 控制里面的个数
    j = 1
    while j <= i:
        print("*",end="")
        j += 1
    print("")
    i += 1

死循环

有的小伙伴可能会想,既然循环是基于判断条件成立就执行后面的代码,那么如果条件一直成立呢?

那么恭喜你,进入死循环了,程序退不出来了...

代码示例:

点击查看代码

while True:
    print('我是最世界上最美丽的人!')
    
'''
输出结果:
我是最世界上最美丽的人!
我是最世界上最美丽的人!
我是最世界上最美丽的人!
我是最世界上最美丽的人!
............
............
'''

如何解决死循环的问题,我们可以使用 break 和 continue 关键字解决 !

break关键字

python while循环用法 pythonwhile循环用法a=1_while循环_02

代码示例:

点击查看代码

a = 0
while True: # 条件永远成立,如果没有break ,死循环

    a += 1 # 等价 a = a + 1,a 的值不停的累计加 1
    if a == 100: 
        break  # 当a == 100 ,条件成立时,break 跳出循环,结束程序
    print("a = %d" % a)


print("循环结束,退出程序")

'''
输出结果:

a = 1
a = 2
a = 3
a = 4
....
a = 96
a = 97
a = 98
a = 99
循环结束,退出程序

'''

上面代码 while 死循环,只有当 while 循环中的条件 a == 100 成立时,才会执行 break 退出循环,记住关键字 break 。

continue 关键字

python while循环用法 pythonwhile循环用法a=1_while循环_03

如果在 while 循环使用 continue ,意味着结束本次循环,continue 下面的代码将不再执行,继续下一次循环。

代码示例:

点击查看代码

a = 0
while True: # 条件永远成立

    a += 1 # 等价 a = a + 1,a 的值不停的累计加 1
    if a == 100:
        continue  # 当a == 100 ,条件成立时,continue 继续下次一循环
    print("a = %d" % a)


print("循环结束,退出程序")


'''
输出结果:

a = 1 
a = 2 
a = 3 
a = 4 
... 
a = 96 
a = 97 
a = 98 
a = 99      # 99后面没有输出100 
a = 101
a = 102
a = 103
....

'''

当程序使用 continue 关键字,程序再次陷入死循环,各位小伙伴注意到没有?在程序打印到控制台的时候,99之后就是101了,唯独没有100。

这是因为当 a 的值为100时,循环中执行了 continue ,程序代码会直接跳过 continue后面的代码,回到 while 循环的最开始。

总结:

1、break 是结算循环,当前的 while 循环停止;

2、continue 是结束本次循环,继续下一次循环,实际上循环还没有停止;

以打篮球为例子,如果使用了 continue 就是中场休息,休息完继续打;

如果使用了 break 就是比赛结束;