运算符(操作符)可以对一个或者多个值进行运算或者各种操作
运算符的分类:
算术运算符
赋值运算符
关系运算符(比较运算符)
逻辑运算符
条件运算符(三元运算符)
1. 算数运算符
+
:加法运算符如果是 Number 类型的相加,则是做加法运算,如果是字符串,则是拼接。
>>> 'a' + 'bc' 'abc' >>> 1 +3 4
-
:减法运算符*
:乘法运算符Number 类型的正常做乘法运算,如果是字符串,则是复制字符串
>>> 5*6 30 >>> 'abc'*4 'abcabcabcabc'
/
:除法运算符,注意除数不能为 0//
:整除,只会保留整数位>>> 5 // 3 1 >>> 5 //2 2 >>>
**
: 幂运算,求一个值的几次幂>>> 5 ** 2 25 >>> 2 ** 8 256 >>> # 求 9 的平方根 >>> 9 ** 0.5 3.0 >>>
%
:取模(取余数),求余数>>> 5 % 2 1 >>> 10 % 2 0 >>> 100 % 33 1 >>> 3 % 4 3
2. 赋值运算符
=
:赋值运算符可以将等号右侧的值赋值给左侧的变量x = 2
+=
: 相当于x = x + 2
-=
:相当于x = x - 2
*=
:相当于x = x * 2
**=
:相当于x = x ** 2
/=
:相当于x = x / 2
//=
:相当于x = x // 2
%=
:相当于x = x % 2
>>> x = 2 >>> x += 2 >>> x 4 >>> x -= 1 >>> x 3 >>> x *= 4 >>> x 12 >>> x **= 2 >>> x 144 >>> x /= 2 >>> x 72.0 >>> x //= 5 >>> x 14.0 >>> x %= 3 >>> x 2.0 >>>
3. 关系运算符(比较运算符)
用来比较两个值之间的关系,如果关系成立,则返回 True,否则返回 False。
>
:大于号>=
:大于等于号<
:小于号<=
:小于等于号==
:比较是否相等,相等和不等于比较的是对象的值,而不是对象的 id!=
:比较是否不相等is
: 比较两个对象是否是同一个对象,比较的是对象的 idis not
: 比较两个对象是否不是同一个对象,比较的也是对象的 id>>> 23 > 10 True >>> 23 >= 12 True >>> 23 >= 23 True >>> 23 >= 45 False >>> 23 < 10 False >>> 23 <= 23 True >>> 23 <= 19 False >>> 23 == 23 True >>> 23 ==34 False >>> 'a' == 'c' False >>> 'a' == 'a' True >>> 'a' != 'a' False >>> 'a' != 'c' True >>> 1 == True True >>> 0 == False True >>> 1 == False False >>> a = 2 >>> b = 2 >>> a is b True >>> a is not b False >>> c = 3 >>> a is c False >>> a is not c True
在 Python 中可以对两个字符串进行比较,对字符串比较时,实际上比较的是字符串的 Unicode 编码,比较两个字符串的 Unicode 编码时,是逐位进行比较。意思是第一位跟第一位进行比较,如果第一位就大了,说明值大了。注意:如果不希望比较两个值的 Unicode 编码值,进行类型转换即可。
>>> 'a' > 'b'
False
>>> 'a' < 'b'
True
>>> 'a' < 'b'
True
>>> 'a' <= 'b'
True
>>> 'a' >= 'b'
False
>>> 'abcv' < 'b'
True
>>> 'abcv' < 'a'
False
4. 逻辑运算符
主要用来进行逻辑运算。
not
: 非not 可以对符号右侧的值进行非运算,是一个一元运算符。
对于布尔值,非运算是取反操作
对于非布尔值,非运算会先将其转换为布尔值,然后取反
>>> a = True >>> a True >>> not a False >>> a True >>> a = not a >>> a False >>> a = "sdfsd" >>> a = not a >>> a False >>> a False >>> a = True >>> a = not a >>> a False >>> a = "" >>> a = not a >>> a True >>> a = 0 >>> a = not a >>> a True >>> a = 1 >>> a = not a >>> a False
and
:与只有满足两侧都是 True 的时候结果才是 True,只要有一个False 返回的都是 False。
与运算是短路语句,如果第一个值为 False,则就不会执行第二个语句了,结果必定返回 False
>>> a = True and True >>> a True >>> a = True and False >>> a False >>> a = False and False >>> a False >>> >>> True and print('1234') 1234 >>> False and print('1234') False
or
:或两侧的值只要有一个为 True,则返回 True。
或运算也是短路语句,如果第一个值为 True,则就不会执行第二个语句了,结果必定返回 True
>>> True or False True >>> False or True True >>> False or False False >>> True or True True >>> False or print('123') 123 >>> True or print('123') True
非布尔值的逻辑运算
当我们对非布尔值进行逻辑运算时,Python 会将其当作布尔值运算,最终返回返回原值
因为 与 运算找 False, 或运算是找 True,0 跟 1 分别表示 False 和 True
与运算的规则
如果第一个值为False,则直接返回 第一个值,否则返回第二个值,如果第一个值为 True,则返回 第二个值,如果没有False,返回第二个值
或运算的规则
如果第一个值为True,则直接返回第一个值,否则返回第二个值,如果第一个值为False,则返回第二个值,如果没有 True,返回第二个值
>>> 1 and 2 2 >>> 2 and 0 0 >>> 0 and 2 0 >>> 1 and 2 2 >>> 2 and 1 1 >>> "" and 1 '' >>> 2 and 3 3 >>> 3 or 34 3 >>> 0 or 23 23 >>> 1 or 23 1
5. 条件运算符(三元运算符)
语法: 语句1 if 条件表达式 else 语句2
条件运算符在执行时,会先对条件表达式求值进行判断,如果判断为 True,则执行第一个语句,如果为False,则执行第二个语句。
>>> print('123') if True else print('abc')
123
>>> print('123') if False else print('abc')
abc
>>> a = 10
>>> b = 20
>>> c = 30
>>> a if a > b and a > c else b if b > c else c
30