if测试及其语法规则
1) if测试介绍
if语句是一个复合语句,可以包含其他语句,包含其他if在内。实际上,python可以按照顺序组合语句使其逐一执行,而且可以任意地扩展嵌套。
if语句地一般形式:
if <test1>:
<statements1>
elif <test2>:
<statements>
else:
<statements>
python会执行第一次测试为真的语句下面的嵌套语句,或者如果所有测试都为假时,就执行else部分。elif和else部分都可以省略,而且每一段可以嵌套一个以上的语句。注意if、elif以及else结合在一起的原因是他们垂直对齐,具有相同的缩进。
python中没有可以根据变量值选择动作的switch或case语句。在python中,多路分支是写成一系列的if/elif测试,或者对字典进行索引运算或搜索列表。
>>> choice = 'ham'
>>> print({'spam':1.25, 'ham':1.99, 'eggs':0.99, 'bacon':1.10}[choice])
1.99
当没有键匹配时,if是按else分句处理,此时的字典的索引运算如何处理呢?字典默认值能编码到has_key测试、get方法调用或异常捕捉中。
>>> branch ={'spam':1.25, 'ham':1.99, 'eggs':0.99}
>>> print(branch.get('spam', 'Bad choice'))
1.25
>>> print(branch.get('bacon', 'Bad choice'))
Bad choice
2)python语法规则
特性:
(1)语句是逐个运行的,除非你不这样编写。比如遇到if或者循环会使解释器在程序中跳跃。
(2) 块和语句的边界会自动检测。 python使用首行下的语句缩进把嵌套块内的语句组合起来;一行的末尾通常就是该行所写语句的结尾。
(3)复合语句 = 首行 + “:” + 缩进语句。
(4) 空白行、空格以及注释通常都会被忽略。文件中空白行将忽略(但在交互模式提示符下不会)
(5) 文档字符串(docstring)会忽略,但会保存并由工具显示。
3)代码块分隔符
python会自动以行缩进检测块的边界,也就是程序代码左侧的空白空间。缩进至右侧相同的距离的所有语句属于同一块的代码。python不在乎你怎么缩进代码,只在乎缩进是否一致。每个缩进层级使用4个空格或者一个制表符。
所以缩进其实是python语法的一部分,而不仅仅是编程风格:任何特定单一块中所有语句都必须缩进到相同的层次,否则python会报告语法错误。同时要避免混合使用制表符和空格。
4)语句的分隔符
(1) 如果使用语法括号对,语句就可横跨数行。如果在封闭的()、{}或[]这类配对中编写代码,python就可让你在下一行继续输入语句。
(2)