流程控制之while循环

一、语法

循环就是一个重复的过程,我们人需要重复干一件事,那么计算机亚需要重复干一件事。ATM验证失败,那么计算机就会让我们再一次输入密码。这时候就要说我们的while循环,while循环有称作天剑循环。

while 条件
    code 1
    code 2
    code 3
    ...

while True:
    print('*1'*100)
    print('*2'*100
#代码:
while True:
    name = 'lwx'
    pwd = '520'

    inp_name = input('username:')
    inp_pwd = input('password:')
    if inp_name == name and inp_pwd ==pwd:
        print('login successful!')
    else:
        print('username or password error!')
    #结果:
username:lwx
password:520
login successful!
username:

上述代码虽然实现了功能,但是用户面输对了,它也会继续输入,需要进行改进

二、while+break

break的意思是终止掉当层的循环,执行其他代码

#代码:
while True:
    print('1')
    print('2')
    break
    print('3')

#结果:
1
2

上述代码的break毫无意义,循环的目的是为了让计算机和人一样工作,循环处理事情,而它直接打印1和2之后就退出循环了。而我们展示下有意义的while+break代码的组合

#代码:
while True:
    name = 'lwx'
    pwd = '520'

    inp_name =input("username:")
    inp_pwd = input("password:")
    if inp_name ==name and inp_pwd == pwd:
        print('login successful!')
        break
    else:
        print('username orpassword error!')
print('退出了while循环')

#结果:
username:lwx
password:520
login successful!
退出了while循环

三、while+continue

continue的意思是终止本次循环,直接进入下一次循环

#代码:
n = 1
while n<4:
    print(n)
    n+=1

#结果:
1
2
3
#代码:
n = 1
while n<10:
    if n==8:
        continue
    print(n)
    n+=1
    
#结果:
1
2
3
4
5
6
7

continue不可以加在循环的最后一步执行,这样加上去是毫无意义的,如下所示的continue所在的位置就是毫无意义的,注意:是随后一步执行的代码,而是不是最后一行

while True:
    if 条件1:
        code1
        code2
        code3
        ...
    else:
        code1
        code2
        code3
        ...

    continue

四、while循环的嵌套

#代码:
#退出内层循环的while循环嵌套
while True:
    name = 'lwx'
    pwd = '520'

    inp_name = input("username:")
    inp_pwd = input("password:")

    if inp_name == name and inp_pwd == pwd:
        print('login successful!')

        while True:
            cmd = input("请你输入需要的命令:")
            if cmd =='q':
                break
            print(f'{cmd} 功能执行')
        else:
            print('username or password error!')

print("退出了while循环R")

#结果:
username:lwx
password:520
login successful!
请你输入需要的命令:q
username:
#代码:
#退出双层循环的while循环嵌套
while True:
    name = 'lwx'
    pwd = '520'

    inp_name = input("username:")
    inp_pwd = input("password:")

    if inp_name == name and inp_pwd == pwd:
        print('login successful!')

        while True:
            cmd = input("请你输入需要的命令:")
            if cmd =='q':
                break
            print(f'{cmd} 功能执行')
        break
    else:
            print('username or password error!')

print("退出了while循环R")

#结果:
username:lwx
password:520
login successful!
请你输入需要的命令:q
退出了while循环

五、tag控制循环退出

#代码:
#tag控制循环退出
tag = True
while tag:
    name = 'lwx'
    pwd = '520'

    inp_name = input("username:")
    inp_pwd = input("password:")

    if inp_name == name and inp_pwd ==pwd:
        print("login successful!")

        while tag:
            cmd = input("请输入你需要的命令:")
            if cmd =='q':
                tag = False
            print(f'{cmd} 功能执行')
        else:
            print('username or password error')

print("退出了while循环")

#结果:
username:lwx
password:520
login successful!
请输入你需要的命令:q
q 功能执行
username or password error
退出了while循环

六、while+else

#代码:
#while+else
n = 1
while n<3:
    print(n)
    n+=1
else:
    print('else会在while没有被break时执行else的代码')
    
#结果:
1
2
else会在while没有被break时执行else的代码
posted @ 2019-07-29 15:34  祥SHAO  阅读(275)  评论(0编辑  收藏  举报