03 while循环

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打断,我才执行哦')

四、总结

名言:只要思想不滑坡,方法总比点子多

  • 循环好处:解决重复代码问题,用循环(温馨提示:想都不要想)
  • 死循环:循环永远不会终止,才称之为死循环(温馨提示:程序中不要出现死循环哦)
  • 终止循环:
    • 1、修改循环条件指定tag,外层定义tag=True:当前同一级别代码运行完毕以后,终止本层循环。
    • 2、break:遇到break立刻马上终止本层循环。
  • 嵌套多层循环:多出循环的嵌套,推荐使用修改循环条件为False达到推出所有循环的目的
  • countinue:遇到continue立刻马上结束本次循环,直接进入到下一次循环
    • 同级别的情况下,continue后面代码永远运行不到,不因该把代码写道continue后面
    • 还有也不应该放到本次条件循环的最后,因为没有意义,本来这次循环就要结束了,立马就要进入下一次的循环了
  • while+else:只有while循环正常结束,且没有被break打断,else中的子代码块才执行
posted @ 2020-02-22 21:37  给你加马桶唱疏通  阅读(180)  评论(0)    收藏  举报