美文网首页
2.3 运算符与表达式

2.3 运算符与表达式

作者: 操作系统 | 来源:发表于2017-03-10 21:19 被阅读0次

    运算即对数据的操作,常常可以用一些简洁的符号记述,这些符号称为运算符或操作符,被运算的对象(数据)称为运算量或操作数。表达式(expression)是将运算对象用运算符连接起来组成的式子,其中的运算对象可以是常量、变量或者函数。Python的运算符非常丰富,包括赋值运算符、算术运算符、关系运算符、逻辑运算符、成员运算符、身份运算符等。

    2.3.1 赋值运算符

    赋值运算,其含义是将值赋给变量,或者说将值传送到变量所对应的存储单元中。Python的赋值和一般的高级语言的赋值有很大的不同,并不是直接将一个值赋给一个变量,而是通过引用传递的,在赋值时,无论这个对象是新创建的还是已经存在的,都是将该对象的引用赋值给变量。示例代码:

    >>>a = 5
    >>>b = 9
    >>>a = b
    

    对以上代码的解释,a指向的是5,b指向的是9,当执行“a = b”的时候,b把自己指向的地址(即9的内存地址)赋给了a,那么最后的结果就是a和b同时指向了9。
    Python是动态类型语言,不需要预先定义变量类型,变量的类型和值在赋值那一刻被初始化。示例代码:

    >>>x = 67.8
    >>>x = "ABCD"
    

    2.3.2 算术运算符

    算术运算符是常用的运算符,用来执行算术运算。Python的算术运算符有:+(加)、-(减)、* (乘)、/(精确除法)、//(地板除法)、%(求模)、** (乘方),其中加、减、乘及乘方运算规则与平常使用习惯一致,不再赘述。示例代码:

    >>>a = 21
    >>>b = 10
    >>>c = a + b
    >>>d = a - b
    >>>e = a * b
    >>>f  = b**2
    >>>print(c, d, e, f)
    31  11  210  100
    

    Python的除法运算分为精确除法和地板除法。对于精确除法(“/”),其运算结果总是会返回真实的商,不管操作数是整形还是浮点型。示例代码:

    >>>1/2
    0.5
    >>>1.0/2.0
    0.5
    

    对于地板除法(“//”),不管操作数为何种类型,其商值取不大于精确结果的最大整数值。示例代码:

    >>>23//3
    7  
    >>>-23//-3
    7
    >>>23//(-3)
    -8 
    >>>-23//3
    -8
    >>>22.3//3
    7
    >>>-22.3//3.1
    -8.0
    

    模运算(“%”)也称求余运算,要求运算对象都为整型。如果操作数全为正数,其返回值也为正数;如果操作数存在负值,其结果符号由第二个操作数符号决定。示例代码:

    >>>10%3
    1
    >>>10%-3
    -1
    >>>-10%3
    2
    >>>-10%-3
    -1
    

    2.3.3 关系运算符

    关系运算符又称比较运算符,即比较两个操作数的大小关系,若关系成立,则运算结果为逻辑值True,否则结果为False。Python常用的关系运算符有<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)。示例代码:

    >>>i, j, k = 1, 2, 3
    >>>i > j
    False
    >>>k == i + j
    True
    >>>i < j + k
    True
    

    说明,关系运算内各运算符优先级相同,但关系运算符的优先级低于算术运算符优先级。

    2.3.4 逻辑运算符

    逻辑运算又称布尔运算。Python的逻辑运算符有and(逻辑与)、or(逻辑或)、not(逻辑非)。其中,逻辑非的优先级最高,逻辑与次之,逻辑或的优先级最低。Python的逻辑运算结果不同于一般高级语言(如C,C++或Java)。一般后者的逻辑运算值都是布尔值,而Python则不同。
    对于非运算(or),Python运算规则与这些语言相比,并没有特别的地方。not只有两个返回值,True和False。在Python中,真值为假的对象,包括False,None,数字0,空字符串以及空的容器类型。除此以外的任何对象均为真。示例代码:

    >>>not False
    True
    >>>not None
    True
    >>>not 0
    True
    >>>not ""
    True
    >>>not 1
    False
    

    对于与运算(and),Python的运算规则是若左边的表达式为真,则返回右边表达式的值;否则,返回左边表达式的值。示例代码:

    >>>1 and 2
    2
    >>>1 and False
    False
    >>>True and False
    False
    >>>0 and 1
    0
    >>>0 and True
    0
    >>>0 and False
    0
    >>>False and 1
    False
    >>>False and True
    False
    

    对于或运算(or),Python的运算规则是若左边的表达式为真,则返回左边的表达式的值;否则,返回右边的表达式的值。示例代码:

    >>>1 or 2
    1
    >>>1 or False
    1
    >>>True or False
    True
    >>>0 or 1
    1
    >>>0 or True
    True
    >>>0 or False
    False
    >>>False or 1
    1
    >>>False or True
    True
    

    说明,对于“与运算”a and b,如果a为真,继续计算b,b将决定最终整个表达式的真值,所以,结果为b的值;如果a为假,无需计算b,就可以得知整个表达式的真值为假,所以,结果为a的值。
    对于“或运算”a or b,如果a为真,无需计算b,就可得知整个表达式的真值为真,所以结果为a的值;如果a为假,继续计算b,b将决定整个表达式最终的值,所以结果为b的值。

    2.3.5 成员运算符

    Python的成员运算符in,其作用是在指定的序列中查找某个值是否存在,存在就返回True,否则返回False。指定的序列包括字符串、列表或元组,not in与其运算结果相反。示例代码:

    >>>3 in (19, 28, 3, 34, 0)
    True
    >>>3 not in (22, 28, 3, 89, 0)
    False
    

    2.3.6 身份运算符

    身份运算符is,用于测试两个变量是否指向同一个对象,not is与其运算结果相反。示例代码:

    >>>a = 20
    >>>b = 20
    >>>a is b
    True
    >>>a is not b
    False
    

    相关文章

      网友评论

          本文标题:2.3 运算符与表达式

          本文链接:https://www.haomeiwen.com/subject/wrpigttx.html