zoukankan      html  css  js  c++  java
  • Python中else语句块(和if、while、for、try搭配使用)

    学过C/C++的都知道,else语句是和if语句搭配使用的,

    但是在Python中,else语句更像是作为一个模块,不仅仅可以和if语句搭配,还可以和循环语句,异常处理语句搭配使用。下面逐个进行介绍:

    <1> if 语句

    条件表达式为真的时候,执行代码块1,否则执行代码块2. (其实就是一个二选一的问题,必然有一个执行)

    Python中if...else...的扩展模式:多个if条件判断,如下图所示:整个代码块的执行,是顺着某些箭头方向走到结束(图中的黑点)。

    这里需要注意的是,表达式1,2,3是有优先级的,优先级由高到低。所以对于某些应用,把出现概率高的条件判断放在前面判断,效率会比较高。

    比如:班级的成绩分布80~60区间的人数概率较高,如果要给班级同学成绩分ABCD等级,应该把概率高的区间先判断。

     

    <2>while ,for 循环语句

           Python中的循环语句(无论是while 还是for)中,经常配合continue和break语句,两者的区别这里不做介绍。另外还可以和else语句块搭配,当循环(while/for循环语句冒号后面的语句块)正常结束的时候才会执行一遍else语句块;如果是非正常结束的(例如break语句跳出,出现异常等情况),则不会执行else语句块。

         就像右边的程序流程图,整个代码块结束的路径有两个(有两个箭头指向黑色圆点),因为异常或break导致结束的话,是不会执行else语句块的,代码执行结束;while循环过程中没有出现异常或者break跳出,那么因为表达式为假的时候,是正常退出while,这时候会执行else语句块

     

      

    #求最大公约数
    def get_max_factor(arg):
        cnt = arg/2
        while cnt > 1:
            if arg%cnt == 0:
                print "Max factor of %s is %s"%(arg,cnt)
                break
            cnt -= 1
        else:
            print "%s is prime."%arg
    if __name__ == "__main__":
        for i in range(10,20):
            get_max_factor(i)
    
    ##########结果############
    Max factor of 10 is 5
    11 is prime.
    Max factor of 12 is 6
    13 is prime.
    Max factor of 14 is 7
    Max factor of 15 is 5
    Max factor of 16 is 8
    17 is prime.
    Max factor of 18 is 9
    19 is prime.

    以上代码,当循环正常退出,即arg不会被2~arg/2间的任意整数整除的时候,才会执行else语句块。这也说明了arg是一个素数。

    <3>try:....esle:.....

      有待更新.....

    参考来源:http://www.2cto.com/kf/201106/92691.html

  • 相关阅读:
    机器学习入门-贝叶斯垃圾邮件过滤(原理)
    机器学习入门-贝叶斯拼写纠错实例
    机器学习入门-贝叶斯算法(原理)
    机器学习入门-集成算法(bagging, boosting, stacking)
    高并发网站技术架构
    Nginx教程
    Shell脚本部分语法
    关于文本处理sort-cut-wc详解
    vim操作命令
    修改Linux基本配置
  • 原文地址:https://www.cnblogs.com/zyq-blog/p/5590816.html
Copyright © 2011-2022 走看看