Python条件选择(if)语句

2016-08-24

条件选择(if)语句是最基本的一种流程控制语句。Python 并不支持 switch 语句

1. 基本语法

  • 只有两种选择条件,代码实例。
    n = 10
    if n > 9:
        print("larger than 9")
    else:
        print("n <= 9")
    
  • 多于两种选择条件用 if-elif-else 语句。Python 并不支持 switch 语句:
    score = 96
    if score >= 90 :
        print("A")
    elif score < 90 and score >= 80 :
        print("B")
    elif score < 80 and score >= 70 :
        print("C")
    elif score < 70 and score >= 60 :
        print("D")
    else:
        print("E")
    

2. 条件语句执行顺序

Python条件语句按顺序进行判断,即先判断第一个条件,如结果为否进入第二个条件进行判断。因此,一般要把出现概率最大的情况放在前面,以减少判断次数。

3. 经验总结

  • 判断条件时,Python认为空对象是False,包括:整数0,浮点数0.0,空字符串‘’; 所有非空对象是True
  • 注意,比较时,比较表达式中==不能写为=,否则将变为赋值语句;赋值语句并不返回值。
  • Python中“相等”的判断:Python中有两种“相等”,==检测两个不同名变量/对象是否有相同的值;is检查两个不同名变量是否具有相同的ID号(引用同一个对象)。
    >>> x1 = 3.0
    >>> x2 = 3.0
    >>> x3 = x1
    #x1 x2值相等,但不引用同一对象
    >>> x1 == x2
    True
    >>> x1 is x2
    False
    #x1 x3 通过赋值号联系,引用了同一对象
    >>> x1 == x3
    True
    >>> x1 is x3
    True
    #可以对比ID号的异同
    >>> id(x1)
    3072417648
    >>> id(x2)
    3072095088
    >>> id(x3)
    3072417648
    
  • 判断浮点数是否相等的一个坑。Python中,整数是精确的;浮点数并不精确,运算过程中最后一位会有四舍五入的情况发生;更重要的原因是,一些十进制浮点数转化为(计算机内存中的)二进制时,会成为无限小数,而内存是有限的,所以截断后就会不精确。在计算中,如果迭代次数不多或者非线性效应可忽略,一般对最终结果精度范围内影响不大。但是在判断浮点数是否相等的时候会有个隐藏的坑,典型的例子是判断两个算数表达式的结果是否相等。因此,尽量避免浮点数大小判断和精确计算。代码实例:
    >>> a = 0.625 
    >>> b = 0.4
    >>> a - b == 0.225
    False
    >>> a -b 
    0.22499999999999998
    


思想果(www.sixiangguo.net)原创,作者:无梨教主。转载注明作者 和 本文链接: http://www.sixiangguo.net/archives/421.html

评论已关闭.