Python基础知识四 运算符

    科技2022-07-14  112

    一、运算符

    1、运算符的概念

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。

    2、运算符的分类

    算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符条件运算符(三元运算符)

    二、算术运算符

    加法运算符,表现形式 + x = 1 + 2 # x = 3 x = 1.0 + 2 # x = 3.0 # 拼串 x = 'python' + ' java' # x = python java 减法运算符,表现形式 - x = 5 - 2 # x = 3 x = 2 - 5 # x = -3 x = 'python' - ' java' # TypeError: unsupported operand type(s) for -: 'str' and 'str' 乘法运算符,表现形式 * x = 8 * 2 # x = 16 x = 8 * 'a' # x = 'aaaaaaaa' x = 'a' * 'b' # TypeError: can't multiply sequence by non-int of type 'str' 除法运算符,表现形式 / # 整数或者浮点数做除法运算总会返回浮点类型 x = 6 / 2 # x = 3.0 x = 6 / 0 # ZeroDivisionError: division by zero 除数不能为0 x = 'a' / 'b' # TypeError: unsupported operand type(s) for /: 'str' and 'str' x = 'a' / 2 # TypeError: unsupported operand type(s) for /: 'str' and 'int' 整除 // ,只会保留计算后的整数位,总会返回一个整型 x = 7 // 2 # x = 3 取模(取余) % ,求两个数相除的余数 x = 7 % 3 # x = 1 x = -7 % 3 # x = 2 幂运算 ** ,求一个值的n次幂 x = 2 ** 3 # x = 8 x = 25 ** 0.5 # x = 5.0

    三、赋值运算符

    x = 3 可以将等号右边的值赋值给左边的变量x += 3 相当于 x = x + 3x -= 3 相当于 x = x - 3x *= 3 相当于 x = x * 3x **= 3 相当于 x = x ** 3x /= 3 相当于 x = x / 3x //= 3 相当于 x = x // 3x %= 3 相当于 x = x % 3

    四、比较运算符

    比较运算符主要是比较2个值之间的关系,总会返回一个布尔类型。关系成立返回True,不成立Fasle。

    > 比较左侧值是否大于右侧值>= 比较左侧的值是否大于或等于右侧的值< 比较左侧值是否小于右侧值<= 比较左侧的值是否小于或等于右侧的值

    如果出现多个字符的情况下,那么我们的比较方式是对位比较。如果对位比较出结果则直接返回结果,否则去下一位对位比较,直到比较出结果为止。

    r = '2' > '1' # True r = '2' > '11' # True r = 'a' > 'b' # False 97 > 98 r = 'c' < 'd' # True r = 'ab' > 'b' # False r = 'abc' < 'acd' # True

    特殊的比较方式

    == 比较两个对象的值是否相等!= 比较两个对象的值是否不相等is 比较两个对象是否是同一个对象,比较的是对象的idis not 比较两个对象是否不是同一个对象,比较的是对象的id a = 1 b = 1 print(a is b) # True print(id(a),id(b)) # 1829530640 1829530640

    五、逻辑运算符

    逻辑运算符主要用来做一些逻辑判断

    1、逻辑非 not

    not可以对符号右侧的值进行 非 运算。对于布尔值,非运算会对其进行取反操作,True变False,False变True。对于非布尔值,非运算会先将其转换为布尔值,然后再取反操作对于0、空字符串’’、空列表[]、空元组()、空字典{}、空对象None…这些表示空性的值,都会转换为False ,剩下的都是True

    2、逻辑与 and

    and可以对符号两侧的值进行 与 运算。只有在符号两侧的值都为True时,才会返回True;只要有一个False,就返回False与运算是找False的,如果第一个值为False,则不再看第二个值 r = True and True # True r = True and False # False r = False and True # False r = False and False # False

    3、逻辑或 or

    or可以对符号两侧的值进行 或 运算。两个值中只要有一个为True,就会返回True或运算是找True的 r = True or True # True r = True or False # True r = False or True # True r = False or False # False

    4、非布尔值的与、或运算

    当我们对非布尔值进行与、或运算时,Python会将其当做布尔值运算,最终会返回原值。

    4.1 非布尔值与运算的规则

    与运算是找False,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值。

    r = 1 and 2 # 2 r = 2 and 0 # 0 r = 0 and 2 # 0 r = None and 0 # None

    4.2 非布尔值或运算的规则

    或运算是找True,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值。

    r = 1 or 2 # 2 r = 2 or 0 # 2 r = 0 or 2 # 2 r = None or 0 # 0

    六、条件运算符(三元运算符)

    条件运算符在执行时,会先对条件表达式进行求值判断:

    如果判断结果为True,则执行语句1,并返回执行结果。如果判断结果为False,则执行语句2,并返回执行结果。

    语法:语句1 if 条件表达式 else 语句2

    # 求a、b之间的最大值 a = 60 b = 8 m = a if a > b else b print(m) # 60

    七、运算符的优先级

    运算符优先级参照表:https://docs.python.org/3/reference/expressions.html#operator-precedence

    a = 2 or 3 and 4 print(a) # 2 如果or和and的优先级一样高,从左往右运算,结果是4如果or比and的优先级高,从左往右运算,结果是4如果and比or的优先级高,结果是2

    计算结果是2,说明and的优先级比 or的优先级高。

    Processed: 0.032, SQL: 8