流程控制之while循环
16lz
2021-04-15
目录
- 一、语法
- 二、while + break
- 三、while + continue
- 四、while循环的嵌套
- 五、tag控制循环退出
- 六、while + else
一、语法
循环就是一个重复的过程,我们人需要重复干一个活,那么计算机也需要重复干一个活。ATM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。
while 条件 code 1 code 2 code 3 ...while True: print('*1'*100) print('*2'*100)
# 实现ATM的输入密码重新输入的功能while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') else: print('username or password error')
上述代码虽然实现了功能,但是用户密码输对了,他也会继续输入。
二、while + break
break的意思是终止掉当前层的循环,执行其他代码。
while True: print('1') print('2') break print('3')
12
上述代码的break毫无意义,循环的目的是为了让计算机和人一样工作,循环处理事情,而他直接打印1和2之后就退出循环了。而我们展示下有意义的while+break代码的组合。
while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') break else: print('username or password error')print('退出了while循环')
username: nickpassword: 123login successful退出了while循环
三、while + continue
continue的意思是终止本次循环,直接进入下一次循环
n = 1while n < 4: print(n) n += 1
123
n = 1while n < 10: if n == 8: # n += 1 # 如果注释这一行,则会进入死循环 continue print(n) n += 1
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。
while True:if 条件1:code1code2code3...else:code1code2code3...continue
四、while循环的嵌套
ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
# 退出内层循环的while循环嵌套while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') while True: cmd = input('请输入你需要的命令:') if cmd == 'q': break print(f'{cmd} 功能执行') else: print('username or password error')print('退出了while循环')
# 退出双层循环的while循环嵌套while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd: print('login successful') while True: cmd = input('请输入你需要的命令:') if cmd == 'q': break print(f'{cmd} 功能执行') break else: print('username or password error')print('退出了while循环')
username: nickpassword: 123login successful请输入你需要的命令:q退出了while循环
五、tag控制循环退出
# tag控制循环退出tag = Truewhile tag: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_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: nickpassword: 123login successful请输入你需要的命令:qq 功能执行退出了while循环
六、while + else
while+else:else会在while没有被break时才会执行else中的代码。
# while+elsen = 1while n < 3: print(n) n += 1else: print('else会在while没有被break时才会执行else中的代码')
12else会在while没有被break时才会执行else中的代码©著作权归作者所有:来自51CTO博客作者wx5b1fd43180419的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- Go语言基础之流程控制
- 解决go get下载包失败问题
- 执行 brew install 命令长时间卡在 Updating Homebrew 的解决方
- Ansible 日常使用技巧 - 运维总结
- 【DB笔试面试444】Oracle中PL/SQL的流程控制语句包括哪些?
- 【DB笔试面试604】在Oracle中,存储概要(Stored Outline)的作用是什
- 【DB笔试面试573】在Oracle中,常用Hint有哪些?
- python创建线程池(threadpool模块和multiprocessing模块)
- 【递归】JavaScript实现99乘法表的编写(双层for循环与递归方法)