1 #算术运算符
2 #基本没变化,讲两个不一样的,其他不用浪费时间
3 #** 幂,不是^而是**
4 print(8**2);#求8的二次方
5 #//地板除法 说白了就是求带余数的商的值
6 print(9//2);#9/2=4....1这里求的就是4
7
8 print("//////////////////////////////////////");
9
10 #关系运算符
11 #比大小,也只有一点点东西要说
12 #首先字符串也是可以比较大小的
13 #比较大小的方式为从第一位开始比较对应Ascii表的大小来决定的
14 print("SB">"[]");
15
16 #比较不单单只有数字或者字符串可以进行比较
17 #元组()和列表[]也是可以进行比较的
18 #(这两个我都还没学,,所以就只用一下列表吧)
19 a=[1,2,3];
20 b=[2];
21 print(a>b);
22 print(a<b);
23 a=['s',5];
24 #虽然这里建立了新的a的列表,但是由于字符串不能和int比较大小,所以如果写a>b这种判断,是会报错的
25
26 #逻辑运算符
27 #and =&&
28 #or =||
29 #not = !
30 #就是这样的,没啥变化,用法完全一致
31 #提一下,不要忘记了短路运算的存在
32
33
34 #位运算符
35 # ~ 位反 ,讲值按位取反
36 # & 按位与
37 # | 按位或
38 # ^ 按位异或
39 #>> << 左移右移
40 c= 0b01001;
41 d= 0b11101;
42 print(c|d);
43 # 01001
44 # | 11101
45 # 11101=2**4+2**3+2**2+2**0=16+8+4+1=29
46 #所以上面结果输出的是29
47
48 print(c&d);
49 # 01001
50 # & 11101
51 # 01001=2**3+2**0=8+1=9
52 #所以上面结果输出的是9
53
54 print(~c);
55 # 01001
56 # ~
57 # 10110=2**4+2**2+2**1=16+4+2=22
58 # 假如这里的数据就是5位数的,那么结果是22
59 #很遗憾的是这里是64位的数据,所以前面的00000000。。。都会被转化成1
60 #我们就无法手动算了
61
62 c=0b01001;
63 print(c^d);
64 # 01001
65 # ^ 11101
66 # 10100=2**4+2**2=16+4=20
67 #异或的原则是,1 0 =1 ,0 0=0,1 1 = 0;
68
69 print(c<<2);
70 # 01001 <<2左移两位
71 # 0100100 =2**2+2**5=4+32=36
72 #这里要注意,左移后,后面空缺的位置是要补0
73 #然后如果到达了左边的边界,也就是最高位,超过了,就会被移除掉
74 #比如这里如果本来就只有5位数,左移两位后
75 #结果会变成00100,前面的超出最高位的部分就被移去了
76
77 print(d>>2);
78 # 11101 >>2右移两位
79 # 00110(移除01)
80 #和左移类似,右移是超出最低位移除,高位开始补0
81
82 #赋值运算符
83 #+=,-=,//=,&=,%=,>>=等,不做赘述
84
85 print("/////////////////////////////////");
86
87 #同一性测试运算符
88 #is not is
89 #和== !=没有区别
90
91 #成员测试运算符
92 #in not in
93 #in表示包含 not in 表示不包含
94 string_a ="玩个锤子哦!";
95 print("锤子"in string_a);#True
96 print("锤子"not in string_a);#False
97 #字符串可以使用,列表也可以使用
98 lie =[5,4,1,8];
99 print(5 in lie);#True
100 print(9 in lie);#False
悟已往之不谏,知来者之可追