【Python】2.16学习笔记 运算符,位运算符,if-else语句

复合运算符

a *= b  # a = a * b
a += b  # a = a + b
a -= b  # a = a - b
...

位运算符

对数字进行二进制运算

按位与

&,二进制位都为一,则返回值对应二进制位也为一

print( 5 & 7 )

\(5\)的二进制形式为\(101\)\(7\)的二进制格式为\(111\)
按位与之后返回\(101\)

可以用来取出某个数中的指定位
比如说我想知道\(114514\)的二进制数中的第2位,第4位与第5位组成的数字,我就可以让它按位与\(11001_{(2)}\)

按位或

\(|\),对应二进制位只要有一个是\(1\),返回即为\(1\)

print( 5 | 7 )

返回\(7\)

按位异或

^,对应二进制位不相同时,返回\(1\),相同返回\(0\)

print( 5 ^ 7 )

返回值是\(2\),也就是\(10_{(2)}\)
几个小性质:

  1. 可以理解成是不进位的二进制加法
  2. 同时满足交换律与结合律
  3. \(x\) ^ \(0 = x, x\) ^ \(x = 0\)
  4. \(2,3\)可以推出,\(x\) ^ \(y\) ^ \(y = x\) ^ \(0 = x\)

按位取反

~,每个二进制位\(1\)\(0\)\(0\)\(1\)
注:如果想要实现某几位取反,只需要异或所需位是\(1\),其余位是\(0\)的数
比如想得到\(123\)在二进制第\(2,4,6\)位取反的值,只需要异或\(101010\)

\(if\)表达式

如果是真(\(True\)),则执行\(if\)下的语句,如果是假(\(False\)),则跳过

\(Python\)的缩进很严格,缩进格式不正确的话是会报错的
伪代码格式:

if 表达式 : 
    语句

如果写成下面是错误的,因为缩进格式不对

if 表达式 : 
语句

表达式里的内容是一句判断,比如

a == b, a > b ...

如果为真就执行if下的语句

另外还有几种情况代表假:
1.\(if\)表达式的返回值是\(0\),或者是\(0.0\)
2.返回值是一个空字符串""或''
3.返回值是\(None\)
4.返回值是一个布尔值\(False\)

其余值都为真

\(if-else\)语句

同样,\(Python\)也支持\(if-else\),只不过有很严格的缩进

if 表达式 :
    语句1
else : 
    语句2

如果表达式为真,则执行语句1,如果为假,则执行语句2

猜你喜欢

转载自www.cnblogs.com/with6676/p/12319765.html