while循环语句的几种方式
我们知道,在Python中经常我们要使用循环,其中最常用的是while循环,while有很多结合方式,我们知道,如果一个循环没有结束语句那么就失去了意义,所以我们一定要有结束语句,下面来看看while经常用的几种方式:
(一)、while...break语句
lucky_num = 19
while True:
input_num = int(input("Input the guess num: "))
if input_num == lucky_num:
print("Bingo!")
break
elif input_num > lucky_num:
print("The real number is smaller.")
elif input_num < lucky_num:
print("The real number is bigger...")
上述语句中,我们定义了一个lucky_num(幸运数字)让用户去猜测,记得数字一定要进行转换,如果用户输入对了,则使用break语句结束循环;如果用户一直输入不对,则一直让用户进行输入,这种情况起始也相当于一种死循环,除非用户输入正确才能够结束循环,否则就不会停止循环。下面我们来看看,不使用break语句进行退出的情况:
lucky_num = 19
input_num = -1
while input_num != lucky_num:
#当条件满足的时候结束循环
input_num = int(input("Input the guess num: "))
if input_num > lucky_num:
print("The real number is smaller.")
#测试条件,记得使用elif语句,如要盲目使用else语句,当我们知道条件的时候
elif input_num < lucky_num:
print("The real number is bigger...")
print("Bingo!")
我们可以定义while退出的状况,我们进行循环的条件是input_num != lucky_num,即当用户输入的数字和定义的数字不一样的时候进行循环,当条件满足的时候,退出while循环,这种方式是,我们首先给用户输入的值赋一个初始值,让循环能够进行下去,避免出现input_num没有定义的情况。
下面来定义让用户输入有限的次数:
lucky_num = 19
input_num = -1
guess_num = 0
while guess_num < 3:
#当条件满足的时候结束循环
input_num = int(input("Input the guess num: "))
if input_num > lucky_num:
print("The real number is smaller.")
#测试条件,记得使用elif语句,如要盲目使用else语句,当我们知道条件的时候
elif input_num < lucky_num:
print("The real number is bigger...")
elif input_num == lucky_num:
print("Bingo!")
break
guess_num += 1
else:
print("Too many retrys......")
while...break...else...语句,这种语句用于提示用户输入正确的时候退出循环,不执行,使用break语句退出,就不会执行else语句,如果不执行break语句,则必定会执行else语句;这种情况适用于,我们想让当条件满足的时候就退出循环的情况,当条件不满足的时候,我们提示用户退出循环的原因。
就是提示用户退出循环的方式,要知道,while...else...非正常退出的时候不执行else语句,当正常退出的时候必定执行else后面的语句。
while...else...语句中的else语句是在while循环执行完成之后进行执行,但是当while语句不是正常退出,而是强制(break)退出循环的,则不会执行else语句后面的代码。
while循环语句的几种方式的更多相关文章
- python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- T-SQL 循环表的一种方式
原文来自:https://www.lesg.cn/netdaima/sqlservert-sql/2016-463.html SsqlServer 中循环表有几种方式 1.临时表 2.游标 3-. 下 ...
- 循环语句第1种 LOOP ... END LOOP;
7)循环语句 --------第1种---------- LOOP ... END LOOP; declare n number(3) := 1; begin LOOP ...
- 浅谈Spring解决循环依赖的三种方式
引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 第一种: ...
- Spring 循环依赖的三种方式(三级缓存解决Set循环依赖问题)
本篇文章解决以下问题: [1] . Spring循环依赖指的是什么? [2] . Spring能解决哪种情况的循环依赖?不能解决哪种情况? [3] . Spring能解决的循环依赖原理(三级缓存) 一 ...
- [SQL分页语句的三种方式]
我们在开发的过程经常会用到数据分页,在网上也可以搜到大量的分页插件.这是在端上控制的;有的是在SQL语句实现分页,这是在数据源上 实现分页的; 今天,我就在总结一下我经常用到的SQL语句分页! 第一种 ...
- setTimeout循环传参数几种方式
for(var i=0;i<5;i++){ setTimeout(function(){ console.log(`错误 ${i}`); },0) } 这种错误的,参数不会变! 以下几种方式正确 ...
- Mybatis控制台打印SQL语句的两种方式
问题描述在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们.但是也有一定的问题,当我们动态sql拼接的块很多的时候,我们要想从*mapper.xml中直接找出完整的sql就 ...
- PHP数组循环遍历的四种方式
1.使用for循环遍历数组 conut($arr);用于统计数组元素的个数. for循环只能用于遍历,纯索引数组!!!! 如果存在关联数组,count统计时会统计两种数组的总 ...
随机推荐
- wap问答系统工作总结
一直想找个锻炼自己的机会,但是又很恐慌,怕自己能力太差,把握不住机会,把事情弄糟. 终于,要做wap问答系统了,本来说是几个人一块儿做,我分析了下页面,发现共同的部分还是比较多的,有点想法,要不我接过 ...
- ajax 实现页面加载和内容的删除
ajax最大的好处就在于加载和删除的时候不会跳转页面,现在的网页大多都会选择用ajax来写,相比嵌入PHP代码来说减少了代码量,同时加载页面也会比较快, 下面是用ajax以数据库fruit表为例写的 ...
- 20170305Meetup Git、heroku drop db
Rails中,给link_to添加上action和class样式,内部文本 <%= link_to product_path(product),{ :controller => 'cont ...
- webStorm Linux Ubuntu 中文搜狗输入问题
1 打开安装路径下bin/webstorm.sh vim ~/WebStorm-145.597.6/bin/webstorm.sh 2.在打开文件的最前面加入如下代码: export XMODIFIE ...
- Java日期获取需求大全
刚进公司,作为熟悉技术,为公司做了一个小的点餐系统的网站,其中大量用到了时间日期作为唯一标示或是显示设置.特总结了一下和大家分享. package com.lucis.ordering.Utils; ...
- 基于ELK的数据分析实践——满满的干货送给你
很多人刚刚接触ELK都不知道如何使用它们来做分析,经常会碰到下面的问题: 安装完ELK不知从哪下手 拿到数据样本不知道怎么分解数据 导入到elasticsearch中奇怪为什么搜不出来 搜到结果后,不 ...
- 防火墙之netfailt、iptables详解
[TOC] Iptables入门 # 1.iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. netfilter 组件也称为 ...
- CognitiveJ一个Java的人脸图像识别开源分析库
CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以 ...
- 数据库dbutils
common-dbutils.jarQueryRunnerupdate方法:* int update(String sql, Object... params) --> 可执行增.删.改语句* ...
- javascript的闭包与一次重构的感受
有没有这么一个场景,你的一个动作需要在所有异步方法执行完毕后,再进行操作?然而你对异步方法何时执行完毕感到困扰,只能在每个方法中写回调,在回调中重复劳动? 偶然的,想起了之前经理讲过的闭包的概念,偶然 ...