首页 > 其他 > 详细

03 while循环

时间:2020-02-22 21:54:40      阅读:67      评论:0      收藏:0      [点我收藏+]

03 while循环

一、什么是循环?

  • 循环就是重复做一件事

二、为何要有循环?

  • 让计算机能够和人一样取重复做某些事情

三、如何用循环?

循环的基本语法

"""
语法展示:
while 条件:   # 循环条件为False时,循环终止
    子代码1
    子代码2
    子代码3
    ...
"""

# 循环条件count范围是0~2时满足循环条件,循环打印当前count值,count增量到3时不满足条件,退出循环
count = 0
while count < 3:    
    print(count)
    count += 1
# 循环结束时,不影响顶行代码的执行  
print('======end=====')

'''
执行结果:
0
1
2
======end=====
'''

死循环

  • 循环永远不会终止,才称之为死循环
# 示范一
count = 0
while count < 5:
    print(count)
    
# 示范二
while True:
    print('ok')

# 注意:不要出现死循环
while True:
    1 + 1

循环的应用

需求:输错密码,重新输入重新验证

  • 方式一:
username = 'WangMao'
password = '123'

while True:
    inp_username = input('请输入你的账户>>:')
    inp_password = input('请输入你的密码>>:')
    
    if username == inp_username and password == inp_password:
        print('登录成功')
        # 登录成功因该结束掉当前循环,break
        break
    else:
        print('输入的账号或密码错误')    
    # 使用break循环,用户登录成功,这条语句不会执行
    print('======end======')   
  • 方式二
username = 'WangMao'
password = '123'

tag = True
while tag:
    inp_username = input('请输入你的账户>>:')
    inp_password = input('请输入你的密码>>:')

    if username == inp_username and password == inp_password:
        print('登录成功')
        # 登录成功因该结束掉当前循环
        tag = False
    else:
        print('输入的账号或密码错误')

    # 用户登录成功,修改循环条件,这条语句任然执行
    print('======end======')

终止循环的2种方式

方式一: 修改循环条件

  • 把循环条件改成假,必须等到当前循环子代码块执行结束,达到下一次循环条件的判断时间,循环才会结束
tag = True
while tag:  
    print('ok')
    # 这时修改以后,当前循环条件是tag变量值为False
    tag = False
    
    print('当前循环子代码块执行结束了。。。')

方式二: break

  • break,放到当前循环体中,一旦运行到break则立刻终止本层循环,不会进行下一次循环条件的判断,当前break同级别之下的代码将不会执行
  • 注意:同级别的情况下,break后面代码永远运行不到,因此,break后面不因该写与其同级别的代码
while True:
    print('ok')
    # 运行到break则立刻终止本层循环
    break
    
    print('我上面有break,同级别之下的代码将不会执行')

嵌套多层循环

需求:想一次性终止所有循环

  • 方式一:break终止(不推荐)
while 条件1:
    while 条件2:
        while 条件3:
            # 我是结束捆绑条件3循环的break
            break
            
        # 我是结束捆绑条件2循环的break
        break
        
    # 我是结束捆绑条件1循环的break
    break
  • 方式二:修改循环条件(推荐)
tag = True
while tag:
    while tag:
        while tag:
            # 当前修改以后,所有的循环条件tag等于False,将依次从里往外,结束循环
            tag = False

嵌套循环小案例

需求一:输错账号密码,重新输入重新验证
需求二:输错3次,退出程序

需求三:输对账号密码,登录成功之后,可以循环接收用户输入的命令并执行

  • 方式一:break
username = 'WangMao'
password = '123'

# 根据需求二得知:程序要记录输错的次数,那就得需要初始化变量来记录输错的初始值为0
count = 0

# 根据需求二得知:输错3次,退出程序,所以作为循环条件,用来控制循环退出。
while count < 3:  # count=3
    # if count == 3:break

    inp_user = input('请输入你的用户名:')
    inp_pwd = input('请输入你的密码:')
    
    if inp_user == username and inp_pwd == password:
        print('登录成功')

        # 需求三: 输对账号密码,登录成功之后,可以循环接收用户输入的命令并执行
        while True:
            cmd = input('请输入你的命令(输入q退出): ')
            if cmd == 'q':
                # 使用break结束用户输入命令的这层循环
                break
            print('%s 正在执行' % cmd)
       # 使用break结束用户想退出的这层循环
        break
    else:
        print('输入的账号或密码错误')
        # 更具需求二得知:程序虽然记录的错误的初始值,但是当每当错误依次时,要时时计算错误的次数
        count += 1  # count=3
  • 方式二:修改循环条件
username = 'WangMao'
password = '123'

count = 0
tag = True

while tag:
    if count == 3: break

    inp_user = input('请输入你的用户名:')
    inp_pwd = input('请输入你的密码:')

    if inp_user == username and inp_pwd == password:
        print('登录成功')
        while tag:
            cmd = input('请输入你的命令(输入q退出): ')
            if cmd == 'q':
                # 修改循环变量,当前代码执行完毕,等到下一次循环判断时,退出程序
                tag = False
            else:
                print('%s 正在执行' % cmd)
    else:
        print('输入的账号或密码错误')
        count += 1  # count=3

continue用法

  • 结束本次循环,直接进入下一次循环
  • 注意:同级别的情况下,coutinue后面代码永远运行不到,因此,coutinue后面不因该写与其同级别的代码
count = 1

while count < 6:  # 循环执行,范围1~5
    if count == 4:  
        count += 1  
        # 注意:同级别的情况下,coutinue后面代码永远运行不到,因此,coutinue后面不因该写与其同级别的代码
        continue  
        print('我永远运行不到。。。')

    print(count)  #
    count += 1  # 6 

while+else用法

  • 注意2个点:1、循环正常结束。2、没有被break强制打断。else中的代码块才会执行(else和while相生相辅)
count = 1
while count < 6:
    # if count == 3:break
    if count == 4:
        count += 1
        continue
    print(count)
    count += 1
else:
    print('我的while循环正常执行结束,没有break打断,我才执行哦')

四、总结

  • 循环好处:解决重复代码问题,用循环(温馨提示:想都不要想)
  • 死循环:循环永远不会终止,才称之为死循环(温馨提示:程序中不要出现死循环哦)
  • 终止循环:修改循环条件:当前同一级别代码运行完毕以后,终止本层循环。2、break:遇到break立刻马上终止本层循环。
  • 嵌套多层循环:多出循环的嵌套,推荐使用修改循环条件为False达到推出所有循环的目的
  • countinue:遇到continue立刻马上结束本次循环,直接进入到下一次循环(同级别的情况下,continue后面代码永远运行不到,不因该把代码写道continue后面)
  • while+else:只有while循环正常结束,且没有被break打断,else中的子代码块才执行

03 while循环

原文:https://www.cnblogs.com/yang1333/p/12347375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!