我们知道,在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循环语句的几种方式的更多相关文章

  1. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  2. T-SQL 循环表的一种方式

    原文来自:https://www.lesg.cn/netdaima/sqlservert-sql/2016-463.html SsqlServer 中循环表有几种方式 1.临时表 2.游标 3-. 下 ...

  3. 循环语句第1种 LOOP ... END LOOP;

     7)循环语句  --------第1种----------   LOOP ... END LOOP;    declare    n number(3) := 1;  begin    LOOP   ...

  4. 浅谈Spring解决循环依赖的三种方式

    引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 第一种: ...

  5. Spring 循环依赖的三种方式(三级缓存解决Set循环依赖问题)

    本篇文章解决以下问题: [1] . Spring循环依赖指的是什么? [2] . Spring能解决哪种情况的循环依赖?不能解决哪种情况? [3] . Spring能解决的循环依赖原理(三级缓存) 一 ...

  6. [SQL分页语句的三种方式]

    我们在开发的过程经常会用到数据分页,在网上也可以搜到大量的分页插件.这是在端上控制的;有的是在SQL语句实现分页,这是在数据源上 实现分页的; 今天,我就在总结一下我经常用到的SQL语句分页! 第一种 ...

  7. setTimeout循环传参数几种方式

    for(var i=0;i<5;i++){ setTimeout(function(){ console.log(`错误 ${i}`); },0) } 这种错误的,参数不会变! 以下几种方式正确 ...

  8. Mybatis控制台打印SQL语句的两种方式

    问题描述在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们.但是也有一定的问题,当我们动态sql拼接的块很多的时候,我们要想从*mapper.xml中直接找出完整的sql就 ...

  9. PHP数组循环遍历的四种方式

     1.使用for循环遍历数组     conut($arr);用于统计数组元素的个数.     for循环只能用于遍历,纯索引数组!!!!     如果存在关联数组,count统计时会统计两种数组的总 ...

随机推荐

  1. MurMurHash3

    Created by Austin Appleby,Authored by Yonik Seeley package util.hash; /** * The MurmurHash3 algorith ...

  2. java基础:模拟ATM取款机

    package com.atm; import java.util.Scanner; /** * ATM类实现 * * @author 向往的生活 */ public class ATM { publ ...

  3. Objective-C日记-之类别Category

    类别Category 1,概述 为现有类添加新的方法,这些新方法的Objective-C的术语为“类别”. 2,用法 a,声明类别 @interface NSString(NumberConvenie ...

  4. 3403: [Usaco2009 Open]Cow Line 直线上的牛

    3403: [Usaco2009 Open]Cow Line 直线上的牛 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 71  Solved: 62[S ...

  5. java对象克隆以及深拷贝和浅拷贝

    1.什么是"克隆"? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不 ...

  6. 读书笔记 effective c++ Item 34 区分接口继承和实现继承

    看上去最为简单的(public)继承的概念由两个单独部分组成:函数接口的继承和函数模板继承.这两种继承之间的区别同本书介绍部分讨论的函数声明和函数定义之间的区别完全对应. 1. 类函数的三种实现 作为 ...

  7. 深入浅出数据结构C语言版(3)——递归简论

      相信学习过C语言的读者都已经接触过递归(不论是谭浩强的C程序设计还是C Primer Plus都有递归程序),本文就是对递归的基本原则进行简要介绍.首先,我们写一个基本的递归函数作为例子: int ...

  8. 【SF】开源的.NET CORE 基础管理系统系列导航

    SF是一套基于ASP.NET Core MVC+EFCore+Bootstrap开发出来的基础管理系统,源代码完全开源,可以帮助你解决C#.NET项目中重复编码的繁琐工作,让开发人员远离加班! SF ...

  9. 使用gem安装jekyll错误记录

    准备在windows7上安装Jekyll, 安装好了Ruby和RubyDevKit之后,准备使用: $ gem install jekyll 安装jekyll,但是返回错误: ERROR: While ...

  10. java封装的方法

    java封装是由Java是面向对象程序设计语言的性质决定的,面向对象程序设计语言的三大特性之一就是封装.封装其实就是包装的意思,从专业的角度来看,就是把对象的所有组成部分组合在一起,保护私有属性. 如 ...