第33课时: 运算符总结 按位操作符 优先级问题
基本运算符:
按位操作:
1,比较运算符可以连用。
>>> a=4
>>> 3<a<10
True
#连用小于号。 注意,java也可以,但是c是不行的。
2 位操作符
|按位或操作符
>>> a=0b11001
>>> b=0b01000
>>> c=a|b
>>> bin(c)
'0b11001'
可以看到,就是 a 和 b 的每一个对应位有其中一个大于 0 就得 1 ,这样生成一个新的二进制数。
0b 代表二进制数。 Bin() 是将某个数以二进制打印出来。
对应关系:
A: 11001
B: 01000
C: 11001
>>> bin(c&b)
'0b1000'
&:某一位上必须两个数的该位数字都为1,输出的数字这一位才为1.
>>> bin(c^b)
'0b10001'
^异或就是,只要两个数对应位的数据不同,那么该位就位1,否则就为0
十进制是否可以用位操作—代码:
>>> a=90
>>> b=87
>>> c=a|b
>>> c
95
>>> bin(a)
'0b1011010'
>>> bin(b)
'0b1010111'
>>> bin(c)
'0b1011111'
可以看到这个操作是按照二进制来操作的,十进制不支持。
左移右移:
就是在二进制上左移右移该数字
代码:
>>> a=3
>>> bin(a)
'0b11'
>>> b=a<<2
>>> bin(b)
'0b1100'
可以看到二进制数,11向做移动两位,变为1100
左移1位相当于乘2,右移一位相当于除2
>>> a=7
>>> b=a>>1
>>> b
3
加法+操作:
(1) 数字相加
(2) 字符串操作
“aaa”+“bbb”
(3) 列表,元组合并
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
乘法*操作:
1 字符串复制:
>>> 'abc'*3
'abcabcabc'
2 数列复制
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
复合赋值运算符:
符合赋值可以让程序更加精炼,提高效率。
Python里面没有 ++ –
运算优先级问题:
注意 :在实际工作运用中,对于复杂的对象一定要用()来组织语言。
>>> (5+10*x)/5-13*(y-1)(a+b)/x+9(5/x+(12+x)/y)