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