计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(null)值为True,0 或者 null为False。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件: 执行语句…… else: 执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围(注意不要少写了冒号:)。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,具体例子如下:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 # 例1:if 基本用法 5 6 flag = False 7 name = 'luren' 8 if name == 'python': # 判断变量是否为 python 9 flag = True # 条件成立时设置标志为真 10 print 'welcome boss' # 并输出欢迎信息 11 else: 12 print name # 条件不成立时输出变量名称
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
如:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 # 例2:elif用法 4 5 num = 5 6 if num == 3: # 判断num的值 7 print 'boss' 8 elif num == 2: 9 print 'user' 10 elif num == 1: 11 print 'worker' 12 elif num < 0: # 值小于零时输出 13 print 'error' 14 else: 15 print 'roadman' # 条件均不成立时输出
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 # 例3:if语句多个条件 5 6 num = 9 7 if num >= 0 and num <= 10: # 判断值是否在0~10之间 8 print 'hello' 9 # 输出结果: hello 10 11 num = 10 12 if num < 0 or num > 10: # 判断值是否在小于0或大于10 13 print 'hello' 14 else: 15 print 'undefine' 16 # 输出结果: undefine 17 18 num = 8 19 # 判断值是否在0~5或者10~15之间 20 if (num >= 0 and num <= 5) or (num >= 10 and num <= 15): 21 print 'hello' 22 else: 23 print 'undefine' 24 # 输出结果: undefine
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
请测试并解释为什么下面的程序打印的是teenager:
1 age = 20 2 if age >= 6: 3 print('teenager') 4 elif age >= 18: 5 print('adult') 6 else: 7 print('kid')
if判断条件还可以简写,比如写:
if x: print('True')
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。