python学习之运算符及其优先级

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()函数查看变量地址)是否是同一个,返回的是逻辑值。这里可以参考python学习之变量类型中的整型。
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运算之前应该事先运行所用的运算,再进行逻辑运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值