一直感觉都没搞清楚什么逻辑运算符啊、位运算符、什么布尔值之间的关系,包括他们在各种编程语言中是否会有区别。这篇文章想尝试梳理一下自己在做CS61A的Lab1的时候,结合网上查过的资料获得的一些理解吧。
算术运算符部分
/ 这个除号是会保留小数部分的 -- > b / a 输出结果 2.1 //这个除号是向下取整的 -- > 9//2=4
赋值运算符部分注意是没有++和--运算符的
位运算符部分和其他语言一致
逻辑运算符也叫布尔运算符



If and and or do not short-circuit, they just return the last value; another way to remember this is that and and or always return the last thing they evaluate, whether they short circuit or not. Keep in mind that and and or don't always return booleans when using values other than True and False.
总结一下
- 关于and:
只要左边的表达式为真,那么整个表达式返回的是右边表达式的值,否则返回的是左边表达式的值
换言之,x and y 的值只能是x 和 y,x为真时就是y,x为假就是x。
- 关于or:
只要两边的表达式都为真,整个表达式的结果返回的是左边表达式的值;
如果一真一假,返回真值表达式的值;
如果两个值都假,比如空值和0,返回的是右边的值
换言之,x or y 的值只可能是 x 和 y,x为真就是x,x为假就是y。
- 关于not:
x为真,则输出False x为假,则输出True 当not和and及or在一起运算时,优先级为是not>and>or:
In [18]: (5>3) and (2>4) or not 6<7
Out[18]: False
In [19]: (5>3) and (2<4) or not 6<7
Out[19]: True
In [20]: (5>3) and (2<4) or not 6>7
Out[20]: True
这部分相关的习题 //TODO
成员运算符

身份运算符

运算符的优先级
