美文网首页程序员
python条件执行

python条件执行

作者: 学习编程王同学 | 来源:发表于2018-02-13 10:43 被阅读159次

    布尔值有真(True)或者假(False)两个。

    为了使程序能够根据条件执行不同的语句,通常需要判断一个布尔值。

    布尔表达式可以给出布尔值。比如x == y就是一个布尔表达式,它会判断变量x与变量y是否相等。符号==是一个比较运算符,若两个运算对象相等,则返回True;若两者不相等,则返回False。

    还可以使用其他的比较运算符:

    x == y          # x等于y
    x != y          # x不等于y
    x > y           # x大于y
    x < y           # x小于y
    x >= y          # x大于等于y
    x <= y          # x小于等于y
    x is y          # x与y相同
    x is not y      # x与y不同
    

    注意区分===,其中=是赋值符号,而==是比较运算符。

    逻辑运算符包括与(and)、或(or)和非(not)三种,例如:

    x > 0 and x < 10
    

    这个表达式只有x > 0为真,且x < 10同时为真时,整个表达式才为真。

    x > 0 or x < 0          # x > 0 或者 x < 0 为真,表达式即为真
    not (x == 0)            # x == 0 为假时表达式为真,即x不等于0时表达式为真
    

    条件执行

    如果想要程序在某种情况下执行一些代码,可以使用if语句。

    if语句结构如下:

    if 判断条件:
        执行语句块
    

    判断条件一般是一个布尔表达式,当布尔表达式为真时执行语句块,否则不执行。

    比如下面的例子:

    x = 2
    if x > 0:
        print ('x是正数.')    # 只有在x>0为真时才会执行
    print ('x = ' + str(x))
    

    上面的例子中,布尔表达式是x > 0,其值为真,因此执行if:下面的语句块——输出“x是正数.”。

    str()函数将变量x中的数字转换成字符串。

    最后一行的语句在if语句块之外,所以并不受if的影响,正常执行。

    可以在执行语句块中放入多条语句:

    x = 2
    if x > 0:
        print ('x是正数.')
        x = x + 1
    print ('x = ' + str(x))
    

    这个程序中变量x最后的结果是3:

    $ python python_if.py
    x是正数.
    x = 3
    

    上面程序中if语句流程图如下:

    python中if语句流程图

    分支执行

    在上面的例子中,如果判断条件为真,则执行一些语句,否则什么都不执行。

    如果要在判断条件为假的情况下执行一些语句,可以使用if...else语句:

    if 判断条件:
        执行语句块    # 在判断条件为真时执行
    else:
        执行语句块    # 在判断条件为假时执行
    

    下面是一个例子:

    x = -1
    if x > 0:
        print ('x是正数.')
    else:
        print ('x不是正数.')
    

    由于x的值为-1,所以x > 0的值为假(false),因此执行else:下面的语句块。

    这个例子运行结果如下:

    $ python python_if_else.py 
    x不是正数.
    

    流程图如下:

    python中if_else语句流程图

    嵌套条件

    if语句可以嵌套使用:

    x = 2
    y = 3
    if (x == y):
        print ('x 等于 y')
    else:
        if (x < y):
            print ('x 小于 y')
        else:
            print ('x 大于 y')
    

    流程图如下:

    python中的if嵌套

    在本例中,由于表达式x == y为假,所以执行else:部分:

    if (x < y):
        print ('x 小于 y')
    else:
        print ('x 大于 y')
    

    由于表达式x < y为真,所以输出“x 小于 y”。

    下面是输出结果示例:

    $ python python_nested_if.py 
    x 小于 y
    

    嵌套使用并没有什么特别之处,只是在if结构的执行语句块部分写了另一个if结构罢了。

    还可以多层嵌套使用:

    if 判断条件:
        执行语句块
    else:
        if 判断条件:
            执行语句块
        else:
            if 判断条件:
                执行语句块
            else:
                if ...
    

    如果有很多个表达式需要判断,那么需要很多层嵌套,于是乎if...elif...else语句诞生了。

    它的效果和if嵌套使用相同,只是缩进变得更简单。

    下面是一个if...elif...else语句的例子:

    x = 0
    if x > 0:
        print ('x是正数.')
    elif x == 0:
        print ('x是0.')
    else:
        print ('x是负数.')
    

    如果有多个elif,那么else只会和最后的elif配对。

    下面是它用if嵌套实现的版本:

    x = 0
    if x > 0:
        print ('x是正数.')
    else:
        if x == 0:
            print ('x是0.')
        else:
            print ('x是负数.')
    

    这两个程序执行效果完全相同,使用if...elif...else语句能使缩进少一些。

    输出结果示例:

    $ python python_if_elif.py 
    x是0.
    

    流程图如下:

    python中if...elif...else的流程图

    相关文章

      网友评论

        本文标题:python条件执行

        本文链接:https://www.haomeiwen.com/subject/eprjtftx.html