流程控制之while循坏
流程控制之while循坏
一、语法
循环就是一个重复的过程,我们人需要重复干一个活,人岂不是要累死啊,而且还是那么…..的枯燥乏味,向我这样要的小年轻,不骚里骚气的行吗?那岂不是白白流浪了这么多年头,所以说呢要合理利用工具和资源,那么就不得不提及这个人笨重的大家伙,那就是传说中的神奇——计算机,利用这个大小子干些重复的活岂不是美滋滋。A例如:取钱,一大堆打款取,那岂不是能堵死,所以说人名早就了传说的TM机。例如TM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的wile循环,while循环又称为条件循环。
# 基本格式
while 条件
code 1
code 2
code 3
...
eg(死循环):
while True:
print('*1'*100)
print('*2'*100)
eg:
# 实现ATM的输入密码重新输入的功能
while True:
user_db = 'randy'
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')
结果:
username: randy
password: 123
login successful
上述代码虽然实现了功能,但是用户密码输对了,他也会继续输入。
二、while +break
break的意思是终止掉当前层的循环,后面的代码不会再执行,执行循环外面的其他代码。
eg:
while True:
print('1')
print('2')
break
print('3')
结果:
1
2
上述代码的break毫无意义,循环的目的是为了让计算机和人一样工作,循环处理事情,而他直接打印1和2之后就退出循环了。而我们展示下有意义的while+break代码的组合。
while True:
user_db = 'randy'
pwd_db = '123456'
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: randy
password: 123456
login successful
登陆成功会退出循环
三、while+continue
continue的意思是终止本次循环,直接进入下一次循环
n = 1
while n < 10:
if n == 8:
# n += 1 # 如果注释这一行,则会进入死循环
continue
print(n)
n += 1
continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。注意是最后一步执行的代码,而不是最后一行。
四、循环的嵌套
ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。
# 退出双层循环的while循环嵌套
while True:
user_db = 'randy'
pwd_db = '123456'
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: randy
password: 123456
login successful
请输入你需要的命令:q
退出了while循环
六、while+else
while+else:else会在while没有被break时才会执行else中的代码(应用场景几乎没有)。
while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')
1
2
else会在while没有被break时才会执行else中的代码
流程控制之while循坏的更多相关文章
- python基础流程控制
流程控制主要分为三大类: 1.if 判断语句 2.while 循坏语句 3.for 循坏语句 下面以举例说明: if 判断语句: user1 = 'seven' user2 = 'alex' pass ...
- javascript语法 1.运算符 2. 流程控制 3. 函数 4. 四种变量 5. 数据类型的运用 6. js页面交互
1.运算符 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- 五、JavaSE语言基础之流程控制
流程控制的简单概念 流程控制:指通过关键字控制代码的执行流程; 一.顺序结构:执行顺序从左到右从上到下; 顺序结构无关键字,一般而言大多数代码都是顺序结构; 二.选择结构:根据条件判断是否执行 选择结 ...
- luogg_java学习_03_流程控制及循环结构
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 程序流程控制 顺序结构 分支结构:if-else,sw ...
- 高性能JavaScript 循环语句和流程控制
前言 上一篇探讨了达夫设备对于代码性能的影响,本文主要探讨并且测试各种常见的循环语句的性能以及流程控制中常见的优化. 循环语句 众所周知,常用的循环语句有for.while.do-while以及for ...
- 高性能JavaScript笔记二(算法和流程控制、快速响应用户界面、Ajax)
循环 在javaScript中的四种循环中(for.for-in.while.do-while),只有for-in循环比其它几种明显要慢,另外三种速度区别不大 有一点需要注意的是,javascript ...
- JavaScript学习笔记——流程控制
javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
- GO語言基礎教程:流程控制
在開始一個新的章節之前先來回顧上一篇文章的部份,首先我們來看這段代碼: package main import ( "fmt" ) func main(){ var x,y int ...
- java面向对象编程—— 第三章 程序流程控制
3.1流程控制 三种基本技术可以改变程序的控制流程: ① 调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ② 选择:java中有两种做出选择的机制:if/else语句和sw ...
随机推荐
- samrt210开发板ping-系列问题(开发板ping通主机,主机ping通虚拟机,唯独~开发板ping不通虚拟机)
硬件:PC机.虚拟机(Linux).开发板(smart210) 常用模型: 注:1).有线网卡与无线网不可同连一个路由器,不可在同网段: 2).vmware选择桥接模式,虚拟网络适配器选定具体的网卡名 ...
- 洛谷 P2671 求和
题目描述 一条狭长的纸带被均匀划分出了nn个格子,格子编号从11到nn.每个格子上都染了一种颜色color\_icolor_i用[1,m][1,m]当中的一个整数表示),并且写了一个数字number\ ...
- React躬行记(3)——组件
组件(Component)由若干个React元素组成,包含属性.状态和生命周期等部分,满足独立.可复用.高内聚和低耦合等设计原则,每个React应用程序都是由一个个的组件搭建而成,即组成React应用 ...
- Amdahl定律理解
其中,a为并行计算部分所占比例,k为并行处理的个数. 当1-a=0时,(没有串行,只有并行)最大加速比s=n: 当a=0时,(只有串行,没有并行)最小加速比s=1: 当k→∞时,s → 1 /(1-a ...
- Python基础总结之第五天开始【认识简单的条件语句,也可以叫判断语句】(新手可相互督促)
周五更新很累... 坚持,年薪20万又进了一步~~ python中的条件语句以[ if ]开头,条件语句成立时,运行该代码块,如果条件不成立,则跳过该代码块,执行后面的代码块. 简单的小示例: 输入性 ...
- 转 java - 如何判断单链表有环
转自 https://blog.csdn.net/u010983881/article/details/78896293 1.穷举遍历 首先从头节点开始,依次遍历单链表的每一个节点.每遍历到一个新节点 ...
- Apache SSI 远程命令执行漏洞复现
Apache SSI 远程命令执行漏洞复现 一.漏洞描述 当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令. 使 ...
- Redis(六)--- Redis过期策略与内存淘汰机制
1.简述 关于Redis键的过期策略,首先要了解两种时间的区别,生存时间和过期时间: 生存时间:一段时长,如30秒.6000毫秒,设置键的生存时间就是设置这个键可以存在多长时间,命令有两个 expir ...
- solidity的delete操作汇总
简介 Solidity中的特殊操作符delete用于释放空间,为鼓励主动对空间的回收,释放空间将会返还一些gas. delete操作符可以用于任何变量,将其设置成默认值0. 删除枚举类型时,会将其值重 ...
- 【JDK】JDK源码-Queue, Deque
概述 Queue 和 Deque 都是接口.其中 Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue). Deque 接口继承自 Queue 接口,表 ...