python运算符包括数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符、成员运算符、引用运算符。因为大都数运算符跟matlab或其他语言的用法类似,这里只介绍一些不一样的用法。此外,python不支持单目运算符,如i++等。
- 数学运算符:除了加减乘除外,python还提供了取模%、整除运算//、次幂运算**,返回的是数值
取模%
a=5;
b=2;
c=a%b;
print(c);
整除// :商的整数部分
a=5;
b=2;
c=a//b;
print(c);
次幂运算**
a=5;
b=2;
c=a**b;
print(c);
- 比较运算符:>、<、>=、<=、==、!=,返回的是逻辑值,即True和False
- 逻辑运算符:and 、or、not
a and b #a为假直接返回a,否则返回b
a or b #a为真直接返回a,否则返回b
not a #返回的是逻辑值,当a非零或非空时,返回False,否则返回True
- 赋值运算符:不仅限于=,还有+=、-=、*=、/=、//=、**=
a=1;
a=a+1; #等价于a+=1,其他运算符类似
值得一提的是,+=除了上述用法外,还可以用于连接字符串
a='Hello';
a=a+' world'; #等价于a+=' world'
- 位运算符:&(位与)、|(位或),用于二进制数据,由于用的不多,故不做介绍。
- 成员运算符:in、not in主要是针对列表、元组、集合、字典类型,in也可用于判断属性和方法在不在某个对象上,返回的是逻辑值。
arr=[1,2,3];
print(5 in arr);
print(3 in arr);
- 引用运算符:is、is not,判断运算符两边变量的地址(可用id()函数查看变量地址)是否是同一个,返回的是逻辑值。
a=10;
b=a;
c=10; # a、b、c地址相同
print(a is b); #结果为True
print(a is c); #结果为True
但是上述规则只针对整型、浮点型、字符串、布尔、None类型,对于列表、元组、集合、字典、对象类型不适用,规则如下:
1. 整型、浮点型、字符串、布尔、None类型
1) 如果值相同,则使用相同地址
2) 如果值不同,则使用不同地址
2.列表、元组、集合、字典、对象类型
1) 如果两个变量的值相同,也会使用不同地址
2) 如果使用变量赋值(即a=b),会使用相同地址
3)如果下面这种情况,也会使用相同地址
a=[1,2,3];
b=a;
b[0]=5;
print(a); # 结果为[5,2,3]
print(b); # 结果为[5,2,3]
print(a is b);#结果为True
4) 如果下面这种情况,也不会使用相同地址
a=[1,2,3];
b=a;
b=[2,3];
print(a); # 结果为[1,2,3]
print(b); # 结果为[2,3]
print(a is b);#结果为False
最后,介绍python中的运算符优先级:(从上往下,从高到低)
1.次幂运算符
2.数学运算符
3.位运算符
4.比较运算符
5.赋值运算符
6.引用运算符
7.成员运算符
8.逻辑运算符
可以看到逻辑运算符的优先级最低,甚至低于赋值运算符,而且值得注意的是and和or运算符前后不允许出现等号赋值,在and和or运算之前应该事先运行所用的运算,再进行逻辑运算。