美文网首页
理解分支语句和boolean表达式

理解分支语句和boolean表达式

作者: 醉看红尘这场梦 | 来源:发表于2020-03-12 09:47 被阅读0次

    可以说,任何一个真正有用的程序,都至少包含一个条件分支语句。但是,秉承着“一件事件只有一种做法”的原则,在Python里,我们只能使用if ... elif ... else在多个条件中选择,而没有类似switch...case这样的用法。

    使用if语句

    由于Python是使用缩进表示代码块的,而没有类似{}这样的语法。因此,它的if语句用起来和C或Swift这样的语言有些不同:

    num = 2
    
    if num < 10:
        content = '{0} is less than 10'.format(num)
        print(content)
    
    

    可以看到:

    • Python中的if语句后面,要使用:表示语句结束
    • 属于if代码块的语句,必须有相同的缩进,因此,下面的写法都会导致运行时错误:
    '''
    !!! The following code will crash. DO NOT do it.
    '''
    if num < 10:
         content = '{0} is less than 10'.format(num)
        print(content)
    
    if num < 10:
        content = '{0} is less than 10'.format(num)
            print(content)
    
    

    了解了if的写法之后,各种分支条件的写法就很简单了:

    if num < 10:
        content = '{0} is less than 10'.format(num)
        print(content)
    elif 10 < num < 20:
        print('between 10 and 20')
    else:
        print('greater than or equal to 20')
    
    

    不太一样的Boolean操作

    在上面这个例子里,elif10 < num < 20这样的形式连接了两个判断,即num > 10并且num < 20,但在现实生活中,要同时判断的,并不是同一个事物。当我们要判断多个不同条件的时候,就需要使用Boolean运算,和你在其他编程语言中的经验不同的是,Python的逻辑运算,更接近自然语言。例如,之前的num判断还可以写成这样:

    f num < 10:
        content = '{0} is less than 10'.format(num)
        print(content)
    elif num > 10 and num < 20:
        print('between 10 and 20')
    else:
        print('greater than 20')
    
    

    注意到and的用法了么?它和其他语言中的&&运算符含义是相同的,表示要求条件同时成立。除了and之外,我们还可以使用or表示“只要有一个成立”,它和其他语言中的||操作符是类似的:

    elif num == 10 or num == 20:
        print('equal to 10 or 20')
    
    

    或者,使用not表示“当前条件不成立”,它和其他语言中的!操作符是类似的:

    elif not num == 10:
        print('not equal to 10')
    
    

    当然,这里“不等于10”是可以有它自己更直观的写法的:

    elif num != 10:
        print('not equal to 10')
    
    

    通常,我们在更一般的boolean表达式中,使用not,例如这样:

    elif num not in [10, 20]:
        print('not equal to 10 or 20')
    
    

    哪些值会被认为是False

    理解了boolean表达式之后,我们来看Python中哪些值会被认为是False:简单来说,就是一切有空值语义的值。因此,除了类似2 == 3这种结果为False之外,当Python评估下面这些表达式的时候,也都会认为是False

    if not "":
        print('empty string')
    
    if not ():
        print('empty tuple')
    
    if not []:
        print('empty list')
    
    if not None:
        print('none')
    
    

    name == 'main'

    由于这一节我们提到了if,在最后,来看一个经常会在Python脚本中见到的写法:

    if __name__ == '__main__':
        print('execute as a single script.')
    
    

    其中,__name__是Python中的一个特殊变量,当脚本被Python解释器独立执行的时候,就会把它设置成__main__。稍后会看到,我们还可以使用import导入其他Python代码,这时,对应文件的__name__变量就不再是__main__了。

    因此,上面的代码作用就是,执行一些当脚本被独立执行时才执行的代码,通常我们要独立调试某个Python文件的时候,会用到这个特性。

    相关文章

      网友评论

          本文标题:理解分支语句和boolean表达式

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