zoukankan      html  css  js  c++  java
  • python循环语句的简单条件语句、多重条件语句和嵌套条件语句编写

    转载原文:https://baijiahao.baidu.com/s?id=1616840043823038731&wfr=spider&for=pc

    1、 简单if-else语句

    例1:要求用户输入两个数,计算两数的和。如果这两个数的和大于100,则输出“两数和大于100”,否则输出“两数和小于100”。

    程序要求用户从键盘输入两个整数,求这两个整数的和。如果和大于100,用print语句输出“两数和大于100”,否则输出“两数和小于100”。程序流程图如下:

                
                              图 1 例1流程图
     
    •  流程图用到了判断框,判断框用于判断两数和结果result的值,并根据判断情况选择不同的分支。类似这样的判断情况,在程序中应用非常广泛,需要对条件进行判断,并根据判断结果,进入不同的分支程序。这种流程称为条件分支流程,其语句结构也称为条件结构。

    在Python语言中,条件结构由if—else语句构成,else语句也可以省略。if语句由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块。else 语句与if语句搭配使用,如果if语句条件表达式的值为真,则执行if 后面的语句块;如果if语句条件表达式的值为假,则执行else后面的语句块。

     if—else语句语法如下:

    • if 条件表达式:
    • 语句块
    • else:
    • 语句块
    • 在if—else语句结构中,如果只对if语句条件表达式为真的情况进行处理,else语句可以省略。现在,我们已经了解了Python语言if-else结构的语法,下面探讨一下如何在条件结构中使用条件表达

     

    1. 例如:要测试两个整数类型的变量值num1和num2是否相等,可以编写num1 == num2,然后将其放入一个if语句中,如下所示:
            
     
           2. 如果num1和num2的数值相等,则条件为真,执行if后面的语句块,用print函数输出“两数相等”,否则执行else后面的语句块,用print函数输出“两数不相等”。编写代码时,if和else后面的语句块要缩进对齐。

    下面根据图1所示的流程图给出例1的程序代码。

          

         3. input函数从标准输入(如键盘)接收用户或设备的输入,input返回的是字符串类型,程序要求输入整数,因此计算两数和时,需要把num1和num2强制转换为整数。最后再判断result的值,根据result的值选择不同的执行路径。

     

    2、 多重if结构语句

     

    例2:编写一个程序,根据用户输入的考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”,成绩小于60分输出“差”。

    程序的主要功能是对考生的考试成绩进行评定,成绩评定分成优、良、中、差四个档次。成绩大于等于90分为优,大于等于80分小于90分为良,大于等于60分小于80分为中,成绩小于60分为差。用户输入考试成绩后,程序需要对考试成绩进行多次判断,如果考试成绩在90分至100分之间,用print函数输出“优”;如果考试成绩在80分至90分之间,用print函数输出“良”;如果考试成绩在60分至80分之间,用print函数输出“中”;如果考试成绩在60分以下,用print函数输出“差”。程序流程图如下:

                
                          图 2 例2流程图

     

    1. 流程图用到了多个条件判断,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。流程图中需要逐级判断输入的考试成绩在哪个分数段内,并输出相应的等级。当遇到类似这种情况时,就可使用多重if结构解决。

    多重if结构实际上是if-else结构的另一种形式;if-else-if,这种形式也称为阶梯式,当有多个分支选择时,可采用多重if结构。

    多重if结构语法如下:

     

    • if 条件表达式1:
    • 语句块
    • elif 条件表达式2:
    • 语句块
    • elif 条件表达式3:
    • 语句块
    • ……
    • else:

          2. 语句块多重if结构从上到下依次对条件进行判断,当条件满足时就执行该条件后面的语句,并跳过其它的条件判断;若没有条件满足,则执行最后的else语句块,如果没有else语句块,则直接执行该结构后面的语句。

    下面根据图2所示的流程图给出例2的程序代码。

       3. 程序使用了if-elif-else多重条件结构,每个条件表达式使用了逻辑与运算符,用于连接两个子表达式,只有两个子表达式都满足条件时,整个表达式的值才为真。

     

    3、 嵌套if语句

    1. 前面介绍了简单if和多重if语句,可以解决很多条件判断问题。但还存在一种嵌套的判断情况,即只有当前提条件满足时,才判断后续条件是否满足。例如,如果星期日天气晴朗,且能买到去青岛的高铁票就去青岛玩,否则就在家休息。在这个例子中,第一条件是天气晴朗,在天气满足的条件下,再判断第二条件,是否能买到去青岛的高铁票,两个条件全部满足就去青岛玩,否则就在家休息。
    2. 嵌套if语句是指在已有if语句块中插入另一个if语句块,实现条件的嵌套判断,if语句块可以多层嵌套。嵌套语句语法结构如下:
    • if 前提条件:
    •  if 后续条件:
    • 语句块
    • else:
    • 语句块
    • else:
    1. 语句块嵌套if语句在Java、C等编程语言中,编写不规范时,有时会引发一些疑问,下面是一个Java语言的例子:

         2. 按条件语句的语法形式,上面的例子似乎有两种可能的解释,第一种理解:外层的if是一个没有else部分的条件语句,最后的else部分属于内层的if语句;第二种理解:内层if是一个不带else部分的条件语句,最后的else属于外层的if条件语句。

    为了避免这种二义性,Java语言规定,每个else部分总是属于前面最近的那个缺少对应的else部分if语句。根据这一规定,上面的例子第一种解释是正确的,第二种解释是不正确的。

    Python不会出现这样的疑问,Python使用强制缩进使代码正确对齐,让程序员来决定else属于哪一个if,从而减少了不确定性。例如,上面的例子代码按照第一种理解可以这么写:

     

    Python代码可以很明显看出,else是和内层if匹配的。

    例3:编写一个程序,要求用户输入两个整数,如果输入的两个整数不相等,输出最大的数。

    程序的主要功能是练习嵌套if语句的使用,要求对用户输入的两个整数首先判断是否相等,在两个数相等的条件下,再判断哪个数大,并输出较大的数。程序流程图如下:

                
                          图 3 例3流程图

     

     

    1. 流程图用到了嵌套条件判断。首先判断num1和num2是否相等,如果相等,程序不做任何处理并结束程序;如果不相等,再判断num1是否大于num2,若条件满足输出num1,程序结束,否则输出num2,程序结束。

    下面根据图3流程图给出例3的程序代码。

           2. 代码使用了嵌套if语句实现了程序任务要求,input获取用户输入后,返回的是字符串,需要把字符串强制转换为整数。

    课程小结

    (1)在Python语言中,if语句由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块。else 语句与if语句搭配使用,如果if语句条件表达式的值为真,则执行if 后面的语句块;如果if语句条件表达式的值为假,则执行else后面的语句块。

    (2)多重if结构语句实际上是if-else结构的另一种形式;if-else-if,这种形式也称为阶梯式,由多个条件判断语句组成,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。

    (3)嵌套if语句是指在已有if语句块中插入另一个if语句块,实现条件的嵌套判断,if语句块可以多层嵌套。

  • 相关阅读:
    JQuery基础知识--方便忘记时查看
    关于jquery.validate.js的用法
    JQuery ajax提交表单及表单验证
    thinkphp rabc权限总结
    关于jquery ajax项目总结
    中国剩余定理及其拓展 CRT&EXGCD
    bzoj 4899 记忆的轮廓 题解(概率dp+决策单调性优化)
    bzoj3307 雨天的尾巴题解及改题过程(线段树合并+lca+树上差分)
    20190614考试心态爆炸记
    fhq Treap(无旋Treap)
  • 原文地址:https://www.cnblogs.com/cheng10/p/13273320.html
Copyright © 2011-2022 走看看