if语句

1.if语句的的通用格式:

  1. if test_expr1: #必选
  2. statement1#必选
  3. elif test_expr2: #可选
  4. statement2
  5. else: #可选
  6. statement3
  • 注意ifelifelse的缩进一致
  • 除了开头的if以及关联的子句外,elifelse均可选

2.Python中多路分支必须写成一系列的if/elif测试,因为Python中没有switch-case语句

字典也可以执行多路分支的逻辑,如:

  1. mydict={'a':func1,'b':func2}
  2. choice='a'
  3. print(mydict[choice])

3.Python中的真值测试:

  • 任何非0数字或者非空对象为True,数字0、空对象(如空列表,空字典、空元组、空set、空字符串)、None对象为False
  • 比较、相等测试会递归地应用在嵌套的数据结构中,他们返回TrueFalse
  • 布尔andor运算符会返回真或假的操作对象,而不是TrueFlase,并且它们是短路计算

    • and:从左到右依次对操作对象求值,停在第一个为假的对象上并返回它,或者当前面所有操作对象为真时返回最后一个操作对象
    • or:从左到右依次对操作对象求值,停在第一个为真的对象上并返回它,或者当前面所有操作对象为假时返回最后一个操作对象

    Python中的真假测试

4.Python支持if|else三元表达式:Y if X else Z
X为真时,表达式的值为Y;当X为假时,表达式的值为Z注意这里为短路计算,并不会同时对YZ求值

  • 三元表达式X? Y:Z也能得到同样的效果
  • 还有一种模拟方法:[Z,Y][bool(X)]。但是它会同时对ZY求值,可能会有副作用。

    bool(X)X转换成对应的1或者0