详解Python中的缩进和选择
缩进
Python最独特的特点是用缩进来标记块的代码。以if选择结构为例。if遵循条件。如果条件确定,则执行属于if的代码块。
先看C语言的表达方式(注意,这是C,不是Python!)
if(i>0) { x=1; y=2; }
如果i > 如果0,我们将进行括号中包含的两个赋值操作。括号中包含块操作,属于if。
在Python中,同样的目的,这段话是这样的
ifi>0: x=1 y=2
在Python中, 去掉了i > 0周围的括号去除了每个句尾的分号,说明块的花括号也消失了。
if多出来了 ...之后:(冒号), 还有就是x = 1 和 y =前面有四个缩进空间。Python通过缩进识别出这两个句子属于if。
Python这样设计的原因纯粹是为了程序好看。
if语句
写一个叫ifdemo的完整程序.py。该程序用于实现if结构。
i=1 x=1 ifi>0: x=x+1 printx
$python ifDemo.py # 运行
当程序运行到if时,条件是True,因此执行x = x+1,。
print x语句没有缩进,那就是if之外。
假如把第一句改成i = -1.然后if遇到假值 (False), x = x+隶属于if, 跳过这句话。 print x没有缩进,除了if,没有跳过,继续执行。
这种用四个空间缩进来表示隶属关系的书写方式,以后会看到。强制缩进增强了程序的可读性。
复杂的if选择:
i=1 ifi>0: print'positivei' i=i+1 elifi==0: print'iis0' i=i*10 else: print'negativei' i=i-1 print'newi:',i
这里有三个块,属于if, elif, else领导。
Python检测条件,如果发现if条件为假,则跳过后面紧跟的块,检测下一个elif条件; 假的话,执行else块。
程序通过上述结构分为三个分支。根据条件,程序只执行三个分支中的一个。
整个if可以放在另一个if语句中,即if结构的嵌套使用:
i=5 ifi>1: print'ibigerthan1' print'good' ifi>2: print'ibigerthan2' print'evenbetter'
if i > 2 与if相比,后块缩进了四个空间,表明它属于if,而不是外层if。
总结
在if语句之后冒号
以四个空间的缩进来表示隶属关系, 不能随意缩进Python。