可以说,任何一个真正有用的程序,都至少包含一个条件分支语句。但是,秉承着“一件事件只有一种做法”的原则,在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文件的时候,会用到这个特性。

What's next?

了解了Python中的分支语句之后,下一节,我们来看另外一类分支语句的用法,如何在Python中实现循环。

所有订阅均支持 12 期免息分期

¥ 59

按月订阅

一个月,观看并下载所有视频内容。初来泊学,这可能是个最好的开始。

开始订阅

¥ 512

按年订阅

一年的时间,让我们一起疯狂地狩猎知识吧。比按月订阅优惠 28%

开始订阅

¥ 1280

泊学终身会员

永久观看和下载所有泊学网站视频,并赠送 100 元商店优惠券。

我要加入
如需帮助,欢迎通过以下方式联系我们