zoukankan      html  css  js  c++  java
  • 第2.3节 Python运算符大全

    一、 Python的算术运算
    Python的算术运算符与C语言类似,略有不同。包括加(+)、减(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位(>>)、单目求反(-)、幂运算(**)、整除运算(//)、增强运算、增强矩阵乘法(@)。
    增强运算是将算术运算符或逻辑运算符放到等号的左侧,与C语言的增强运算符相同。如x+=5,表示x=x+5,该种方法CPU的处理效率高于普通运算方式,且执行优先级也高些。
    下面看看这些运算的例子,大家可以理解一下:

    >>> 10%3
    1
    >>> 10//3
    3
    >>> 10**3
    1000
    >>> n=False
    >>> n
    False
    >>> type(n)
    <class 'bool'>
    >>> i=0
    >>> i==n
    True
    >>> 4>>2
    1
    >>> 4<<2
    16
    >>> ~4
    -5
    >>> 2&4
    0
    >>> 2|4
    6
    >>> m=2
    >>> m**=3
    >>> m
    8

    二、Python的布尔类型

    在介绍比较急逻辑运算之前,需要介绍一个前面没有介绍的bool(布尔)数据类型。
    布尔数据类型是用于条件判断、比较运算和逻辑运算,只有两个值真(True)和假(False)。布尔类型其实是int的子类,False和True对应的值是0和1。但真正使用时,下面的值都将被视为假:
    False None 0 “” () [] {}
    也就是说标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真。
    看看下面的运算结果:

    >>> 10%3
    1
    >>> 10//3
    3
    >>> 10**3
    1000
    >>> n=False
    >>> n
    False
    >>> type(n)
    <class 'bool'>
    >>> i=0
    >>> i==n
    True
    >>> 4>>2
    1
    >>> 4<<2
    16
    >>> ~4
    -5
    >>> 2&4
    0
    >>> 2|4
    6
    >>> m=2
    >>> m**=3
    >>> m
    8

    三、 比较运算

    比较运算表达式 解释
    x==y x是否等于y
    x>y x是否大于y
    x<y x是否小于y
    x>=y x是否大于等于y
    x<=y x是否小于等于y
    x!=y x是否不等于y
    x is y x是否和y是同一对象
    x is not y x是否和y不是同一对象
    x in y x是否是y的元素
    x not in y x是否不是y的元素

    以上运算中的后2个主要用于复杂数据类型的成员判断,后面讲这些数据类型会用到。

    四、 逻辑运算
    逻辑运算与C语言的类似,有逻辑或(or)、逻辑与(and)、逻辑非(not),但没有C语言的简单运算符号||、&&、!。
    看看运算实例:

    >>> True == 1
    True
    >>> False == 0
    True
    >>> True + True 
    2

    从上面后几个示例看出,逻辑运算符and和or不一定都是返回True或False,or当其中参与运算的数据有个值不为False(包括False、0、空等,下同)则直接返回该数据,and当所有数据都不为False则返回最后一个数据。

    五、 运算符的优先级
    下面列出了所有运算符的优先级,数值越大,表示优先级越高。
    在这里插入图片描述

    上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的。老猿认为用处不大,具体内容大家可以在网上查一下。

    更正:
    在上一章节,关于Python语句部分的前面部分内容强调“必须缩进4个空格”缩进与该章节“Python的代码嵌套格式”描述不一样,实际上相关要求是遵循“Python的代码嵌套格式”的情况下,推荐使用一次缩进4个空格。
    另外关于语句中冒号的使用,只说明了那些语句后面必须有冒号,但其实冒号指出来接下来是一段(也可以只有一行)统一缩进的代码块。

  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11087743.html
Copyright © 2011-2022 走看看