zoukankan      html  css  js  c++  java
  • Python 死循环和嵌套循环

    何为死循环:在编程中,一个无法靠自身的控制终止的循环被称为死循环。

    死循环的使用:死循环并非一无是处,C语言中死循环while true或 while 1 是单片机编程的普遍用法,死循环一直运行等待中断程序发生,然后去处理中断程序。
    在Python中,我们也可以利用死循环完成特定功能。
    下面这段死循环程序可以用来一直捕捉输入异常。
    while True:
        try:
            x=int(input("Please enter a number:"))
            break
        except ValueError:
            print("Oops,that was no valid number. Try again ...")
    后测循环:

    假设程序需要用户输入一个非负数
    如果输入错误,重新提示用户输入直到得到一个有效值。
    伪代码如下:
    重复执行以下语句
    接受外部输入数据
    直到外部输入为负值为止
    循环不断接收输入,直到接受到合法的值为止
    条件判断在循环体后面,称之为后测循环(即前面提到过的“直到型循环”)
    后测循环至少执行一次循环体

    后测循环实现:
    Python没有后测循环语句,但可以通过while间接实现。
    思想是设计一个循环条件,直接进入循环体,循环至少执行一次,相当于后测循环。
      number=-1
      while number<0:
         number=eval(input("Enter a positive number:"))

    break语句也可以用来实现后测循环:
      while True:
          number=eval(input("Enter a positive number:"))
          if x>=0:break #如果数字有效则跳出循环

    #while语句体永远执行,if条件决定循环退出
    另外:if语句体只包含一个语句时,break可以跟在if同一行。这种结构被称为循环出口。

    #后测循环代码1
    在前面的while版本的后测循环代码中添加一个if语句,使得在有效输入时不显示警告。
    修改代码如下:
      number=-1
          while number<0:
            number=eval(input("Enter a positive number:"))
            if number<0:
               print("The number you entered was not positive")
    在上面这段代码中,合法性检验重复了两次。

    #后测循环代码2
    限定合法性检验只判断一次,需为if添加匹配的else语句来实现
    修改后的代码如下:
        while True:
             number=eval(input("Enter a positive number:"))
              if x>=0:
                  break ##如果数字有效则跳出循环
              else:
                  print("The number you entered was not positive")
    
    

    半路循环:运用break中途退出循环,循环出口在循环体中部,被称为半路循环

    
    
    while True:
        number=eval(input("Enter a positive number:"))
        if x>=0:break  #跳出循环
        print("The number you entered was not positive")

    半路循环-哨兵:半路循环退出实现哨兵循环的一般模式:

    
    
    While True:
       Get next data item
       if the item is the sentinel :break
       process the item

    我们注意:break语句是一种很方便的设计,但是,任何算法都可以使用不包含break语句的其他语句来实现
    在程序中是否使用break语句,跟个人编程风格有关。
    应避免在一个循环体内使用过多的break语句。因为当循环有多个出口的时候,程序逻辑就显得不够清晰了。
  • 相关阅读:
    vue使用CDN全局安装百度地图
    vue cli3使用webpack4打包优化
    vue使用axios提交formdata格式的数据
    windows、linux使用查看、杀死进程
    分离vue文件,方便后期维护
    vue:使用element-ui制作动态表格
    《从0到1学习Flink》—— Data Sink 介绍
    《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门
    《从0到1学习Flink》—— Flink 配置文件详解
    《从0到1学习Flink》—— Flink Data transformation(转换)
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/8452002.html
Copyright © 2011-2022 走看看