今天来介绍一下Python中的运算符,运算符主要有以下几类:
-
算术运算符
-
比较(关系)运算符
-
逻辑运算符
-
赋值运算符
- 三目运算符
-
位运算符
-
成员运算符
-
身份运算符
接下来,详细的介绍一下运算符的具体操作:
算术运算符
算术运算符用于对整数类型和浮点类型的数据进行相关操作的运算符。
常见的算术运算符以及对应的操作介绍如下图所见:
如果将True/False用于数值的操作运算的时候,会自动转换为1和0去进行计算。
比较运算符
比较运算符主要用于比较两个表达式的大小,对比的返回结果是True或者False。False。
运算符 |
名称 |
例子 |
说明 |
> |
大于 |
a>b |
a大于b时返回True,否则False |
== |
等于 |
a==b | a与b相等时返回True,否则False |
< |
小于 |
a<b | a小于b时返回True,否则False |
>= |
大于等于 |
a>=b | a大于等于b时返回True,否则False |
<= |
小于等于 |
a<=b | a小于b时返回True,否则False |
!= |
不等于 |
a!=b | a与b不相等时返回True,否则False |
实例演示:
下面考考你
在python中,以下语句执行结果分别是什么呢? print(1.0 == 1) ==>True print(1 == True) ==>True print([2,1]>[1]) ==>True print(['1']>[1]]) ==>运行报错
逻辑运算符
逻辑运算符用于对布尔型变量进行运算,其结果也是布尔型。
- and 与(and两边的值都为True时,返回True)
- or 或 (or两边的值只要有一个为True时,返回True)
- not 非,(将true变为false,false变为true)
请看具体案例:
print(True and True) #True print(True and False) #False print(False and False) #False
对于 a or b 来说,如果 a 为真,那么值为 a,否则为 b;对于 a and b 来说,如果 a 为真,那么值为 b,否则为 a。
print(True or False) #True print(False or True) #True print(False or False) #False
print(not True) #False print(not False) #True
具体的运行效果如上面脚本所示,要注意的是,像这种逻辑运算符,在运行过程中,采用了类似“短路”的设计,and 和 or操作在运算的时候,如果结果已经确定,就不会再去计算后面的表达式。
比如:True or False ,前面的True已经确定最终返回的结果会为True,就不会再去管or后面去True还是False。总之:and要所有数据都为True才返回True,or只有有一个为True则返回True。
赋值运算符
=是最常见的赋值运算符,比如a=3,就表示将3的值赋值给变量a。其他常见的赋值运算符有:+=、-+、*=、/=、%=、//=、**=等。
a+=b ==> a=a+b a-=b ==> a=a-b a*=b ==> a=a*b
三目运算符
这个一般用在if判断条件中比较常见,比如,求2个数中的最大值,普通的写法如下:
if a>b: max = a else: max = b
python中提供了一个简便的写法,代码看上去简洁很多:
max = a if a>b else b
python中通过if else的条件判断,可以实现类似java里面的?:三目运算符。
java里面的用法如下:z = x>y ? x-y : x+y;
python里面用法:value1 if 判断条件 else value2
稍微复杂点的写法:
a if a>b else c if c>d else d 等价于:a if a>b else ( c if c>d else d )
成员运算符
in :如果在指定的序列中找到值返回True,否则返回False
not in :制定的序号中没有找到对应的值则返回True,找到则返回False
成员运算符用的还是比较多的,比如查看某个key是不是在某个字典里面时,可以用 key in dict.keys()去判断
a = {"A": "1", "B": "2"} print('A' in a.keys()) print('a' in 'abcdefg')
身份运算符
is、is not,用来判断两个标识符是否引用的同一个对象
a1 = 10 b1 = 2 b1 += 8 print(a1 is b1) #True s1 = 'abc' s2 = '123abc'[3:] print(s1 is s2) #False a1 = 1 print(a1 is True) #False