Python while循环嵌套

这章我们讲while的循环嵌套。我们先来看上章的代码。

username = '110119'
password = '123456'
while True:
   input_username = input('请输入你的账号:')
   input_password = input('请输入你的密码:')
   if input_username == username and input_password:
      print("登入成功")
      break
   else:
      print('用户名或密码错误,请注意格式大小写')

这段代码一开始让用户输入账号密码,如果账号密码不对,就会让你一直输入,我们先不考虑输错的次数限制,限定次数改条件就好了,这个很简单。

现在我们就让它输错了就一直输,直到输对了。输入对了之后我们是不是就登入到了QQ界面了,这时候我们就可以进行各种操作了,比如找你的男朋友、女朋友聊天,看他们的朋友圈等等。

那我是不是可以和女朋友聊完天之后再去看她的QQ空间,或者再执行其它的操作,都是可以的。

也拒收说,登入成功之后,不应该立马结束循环,而是应该进入另一个循环。这个循环就专门用来循环你的各种操作。

我可以这样来写代码,在登入成功下面再写一个while循环,但是这样写有个问题,就是它会让你一直输入操作。也就是代码运行到第二个while就变成死循环了,只能输入各种操作,没有退出机制。

username='110119'
password='123456'
while True:
    input_username=input('请输入你的账号:')
    input_password=input('请输入你的密码:')
    if input_username==username and input_password:
        print("登入成功")
        while True:
            action = input('请输入你的操作')
            print(f'正在看{action}')
        break
    else:
        print('用户名或密码错误,请注意格式大小写')

里面的循环结束碧聊就运行不到外层循环的break,导致外层的循环也结束不了,所以我们应该写个退出机制。比如我输入个xxx,就会退出循环。我们来打印试试。

username = '110119'
password = '123456'
while True:
    input_username = input('请输入你的账号:')
    input_password = input('请输入你的密码:')
    if input_username == username and input_password:
        print("登入成功")
        while True:
            action = input('请输入你的操作')
            if action == 'xxx':
                break
            print(f'正在看{action}')
        break
    else:
        print('用户名或密码错误,请注意格式大小写')

如果当你是使用break结束嵌套多层的while循环,那每次层都要配一个break,这样感觉上是有一点麻烦。我们前面还讲了另一种结束循环的方法。

你可以把所有循环的条件都设置成同一个变量,然后只要这个变量已被改变,那所有循环的条件都不成立了,最后就会结束循环。

对比另一种结束循环的方法,还是break这种结束循环的方法比较常用。

未经允许不得转载:445IT之家 » Python while循环嵌套

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏