Python基础05 缩进和选择
缩进
Python 最具特色的是用缩进来标明成块的代码,我下面以if选择结构来举例。if后面跟随条件,如果条件成立,
则执行归属于if的一个代码块。
先看C语言的表达方式(注意,这是c,不是Python!)
if( i > 0 )
{
x = 1;
y = 2;
}
如果i > 0 的话,我们将进行括号中所包括的两个赋值操作,括号中包含的就是块操作,他隶属于if.
在Python中,同样的目的,这段话是这样的
if i > 0:
x = 1
y = 2
在Python中, 去掉了 i > 0 周围的括号,去掉了每个语句句尾的分号,表示块的花括号也消失了。
多出来了 if ... 之后的:(冒号) ,还有就是x = 1 和y=2前面有四个空格的缩进,通过缩进,Python识别出这两个语句是
隶属于这个if.
Python 这样设计的理由纯粹是为了程序好看。
if 语句
写一个完整的程序,命令为 ifDemo.py. 这个程序用于实现if结构。
i = 1
x = 1
if x > 0:
x = x+1
print x
$python ifDemo.py # 运行
程序运行到if的时候,条件为True, 因此执行 x = x+1,
print x 语句没有缩进 那么就是if之外。
如果将第一句改成 i = -1 ,那么if 遇到假值(False) , x = x+1 隶属于if,这一句跳过,print x 没有缩进,是if之外,
不跳过,继续执行。
这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到,强制缩进增强了程序的可读性。
复杂一些的if 选择:
i= = 1
if i > 0:
print 'positive i'
i = i + 1
elif i == 0:
print 'i is 0'
i = i * 10
else:
print 'negative i'
i = i - 1
print 'new i:',i
这里有三个块,分别属于 if, elif else引领。
Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件;如果还是假,那么执行else
块。通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。
整个if 可以放在另一个if语句中,也就是if结构的嵌套使用:
i = 5
if i > 1:
print 'i bigger than 1'
print 'good'
if i > 2:
print 'i bigger than 2'
print 'even better'
if i > 2 后面的块相对于该if缩进了四个空格,以表明其隶属于该if,而不是外层的if.
总结
if 语句之后的冒号
以四个空格的缩进来表示隶属关系,Python 中不能随意缩进
if <条件1>:
statement
elif <条件2>:
statement
elif <条件3>:
statement
else:
statement