出自:https://blog.csdn.net/gavin_john/article/details/49910253
if语句
一般形式:
- if <test1>:
- <statements1>
- elif <test2>:
- <statements2>
- else <test3>:
- <statements3>
- >>> choice = 'ham'
- >>> print({'spam':1.25,
- 'ham':1.99,
- 'eggs':0.99,
- 'bacon':1.10}[choice])
- 1.99
- >>> 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
一些语法规则:
【字典适用于将值和键关联,但如果通过if语句来编写的更复杂动作呢?在之后将会学到字典也可以包含函数,从而代表更为复杂的分支动作,并实现一般的跳跃表格。这类函数作为字典的值,通常写成函数名或lambda,通过增加括号调用来触发其动作】
【虽然字典式多路分支在处理动态数据的程序中很有用,但多数程序员发现,编写if语句是执行多路分支最直接的方式。编写代码的原则是:有疑惑的时候,就遵循简易性原则和可读性原则】
【缩进:每个缩进层级使用4个空格或者一个制表符,这是通常的惯例;避免混合使用制表符和空格!】
【相邻的字符串常量是隐式地连接起来的】
=========================================================================================
真值测试
在Python中:
【1】任何非零数字或非空对象都为真
【2】数字零、空对象以及特殊对象None都被认作是假
【3】比较和相等测试会递归地应用在数据结构中
【4】比较和相等测试会返回True或False(1和0的特殊版本)
【5】布尔and和or运算符会返回真或假的操作对象
Python中有三种布尔表达式运算符:
【1】X and Y 如果X和Y都为真,就是真
【2】X or Y 如果X或Y为真,就是真
【3】not X 如果X为假,那就是真(表达式返回True或False)
此处,X和Y可以是任何真值或者返回真值的表达式(例如,相等测试,范围比较等)
布尔运算法在Python中是字(不是C的&&、||和!)。此外,布尔and和or运算符在Python中会返回真或假对象,而不是值True或False:
- >>> 2<3,3<2
- (True, False)
另一方面,and 和 or 运算符总会返回对象,不是运算符左侧的对象,就是右侧的对象。
就or测试而言,Python会从左至右求操作对象,然后返回第一个为真的的操作对象。再者,Python会在其找到的第一个真值操作数的地方停止,这通常叫做短路计算,因为求出结果后,就会使表达式其余部分短路:
- >>> 2 or 3,3 or 2
- (2, 3)
- >>> [] or 3
- 3
- >>> [] or {}
- {}