day3 变量和运算符

1. 回顾

原码=符号位+真值
反码=除符号位以外,其他的在原码的基础上取反
补码=反码加1

2. 变量

变量名要是标识符,不能是关键字
‘=’ 是赋值符号,固定写法

使用变量

变量中保存的数据能做什么,变量就能做什么
使用变量的时候其实在使用变量中保存的数据
变量中保存的数据可以做什么,变量就可以做什么

修改变量中的数据(重新给变量赋值)

python中同一个变量可以保存不同类型的值

同时定义多个变量/同时给多个变量赋值

同时给不同变量赋相同值
同时给不同变量赋不同值
交换两个变量的值

python中数字运算的等号是==
赋值标志是=

3.变量赋值的原理

1.在堆中申请内存
2.将数据保存在内存中
3.让变量和保存数据的内存进行关联

4.数学运算符

  • , - ,* , / ,%,//,**

%(取余/取模)

应用:
获取变量的个位数或者低几位数 10,100
判断一个数是否能被另外一个数整除

//

应用:
求商取商的整数部分(向下取整/向小取整)
4.12 —4
-5.12— -6
取定长数字的最高位//100,//10

5.比较运算符

, < , == , >= , <= , !=

notice:
所有比较运算符的结果都是布尔值
数字数据不能和字符串数据进行比较
python中支持比较运算符的连写表示范围

6.逻辑运算符

and,or, not

and

希望两个场景或者多个场景同时满足时用

or(只要有一个True,结果就是T)

在多个条件一个满足就行

not

当操作对象不是布尔值时

d1 and d2
d1 True,则结果d2
d1 False,则结果d1

d1 or d2
d1 True,则结果d1
d1 False,则结果d2

布尔值的确定:为0为空则是False,其他的是True

表达式的短路
e1 and e2 e1False时,e2不会被执行

e1 or e2 e1True,e2不会被执行

7.赋值运算符

=, += ,-= ,*= ,/= ,%= ,//= ,**=

运算符的优先级:数学运算符》比较运算符》逻辑运算符》赋值运算符

8.位运算

位运算的对象是直接操作数据在内存中的补码
&(按位与)
|(按位或)
^(异或)
~(按位取反)
<<(左移)

(右移)

运算符操作的是数据在内存中存储的原始二进制位(补码),而不是数据本身的二进制形式

&

n1 & n2 两个结果都是1的话结果是1,否则为0
0110 1101(补) & 1010 1100(补)—0010 1100(补)

print(5&9)
5:0000 0101(补)(5在内存中的存储)
9: 0000 1001(补)(9在内存中的存储)
5&9: 0000 0001=1 (1在内存中的存储)

e.g.:
-9&5
-9:1000 1001 (原)1111 0111(补)
5:0000 0101(补)
5&9:0000 0101(补)=5

应用:判断数字的奇偶性
001101101 & 00000001
让被判断数字和1进行按位运算,是0就是偶数,否则是奇数
如:print(3&1)

|

只要有一个1结果就是1,两个都是0结果才是0

练习:7 | 16
7:0000 0110
16:0001 0000
7|16: 0001 0110=22

   7 | -16
7:0000 0110
-16:1001 0000(原)=1110 1111(反)=1111 0000(补)
7|-16:1111 0110

^

不同为1,相同为0

18:0001 0010
9:0000 1001
9^18:0001 1011=16+11=27

27: 0001 1011
9:0000 1001
27^9:0001 0010=18

~

0变1,1变0
~数字

<< , >>

应用:高效率快速乘二或者二的次方数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值