operator模組是python中內建的操作符函數介面,它定義了一些算術和比較內建操作的函數。operator模組是用c實現的,所以執行速度比python代碼快。
邏輯操作
?
| 1 2 3 4 5 6 7 8 9 10 11 12 |
from operator import * a = [ 1 , 2 , 3 ] b = a print 'a =' , a print 'b =' , b print print 'not_(a) :' , not_(a) print 'truth(a) :' , truth(a) print 'is_(a, b) :' , is_(a, b) print 'is_not(a, b) :' , is_not(a, b) |
列印結果: ?
| 1 2 3 4 5 6 |
a = [1, 2, 3] b = [1, 2, 3] not_(a) : False truth(a) : True is_(a, b) : True is_not(a, b): False |
可以通過結果知道,operator的一些操作函數與原本的運算是相同的。
比較操作符
operator提供豐富的比較操作。 ?
| 1 2 3 4 5 6 7 8 |
a = 3 b = 5 print 'a =' , a print 'b =' , b print for func in (lt, le, eq, ne, ge, gt): print '{0}(a, b):' . format (func.__name__), func(a, b) |
列印結果 ?
| 1 2 3 4 5 6 7 8 9 |
a = 3 b = 5 lt(a, b): True le(a, b): True eq(a, b): False ne(a, b): True ge(a, b): False gt(a, b): False |
這些函數等價於<、<=、==、>=和>的運算式文法。
算術操作符
處理數位算術操作符也得到支援。
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |
a, b, c, d = - 1 , 2 , - 3 , 4 print 'a =' , a print 'b =' , b print 'c =' , c print 'd =' , d print '\nPositive/Negative:' print 'abs(a):' , abs (a) print 'neg(a):' , neg(a) print 'neg(b):' , neg(b) print 'pos(a):' , pos(a) print 'pos(b):' , pos(b) |
列印結果 ?
| 1 2 3 4 5 6 7 8 9 10 11 |
a = -1 b = 2 c = -3 d = 4 Positive/Negative: abs(a): 1 neg(a): 1 neg(b): -2 pos(a): -1 pos(b): 2 |
abs傳回值得絕對值,neg返回(-obj), pos返回(+obj)。 ?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
a = - 2 b = 5.0 print 'a =' , a print 'b =' , b print '\nArithmetic' print 'add(a, b) :' , add(a, b) print 'div(a, b) :' , div(a, b) print 'floordiv(a, b) :' , floordiv(a, b) print 'mod(a, b) :' , mod(a, b) print 'mul(a, b) :' , mul(a, b) print 'pow(a, b) :' , pow (a, b) print 'sub(a, b) :' , sub(a, b) print 'truediv(a, b) :' , truediv(a, b) |
列印結果 ?
| 1 2 3 4 5 6 7 8 9 10 11 12 |
a = -2 b = 5.0 Arithmetic add(a, b) : 3.0 div(a, b) : -0.4 floordiv(a, b) : -1.0 mod(a, b) : 3.0 # 查看負數模數 mul(a, b) : -10.0 pow(a, b) : -32.0 sub(a, b) : -7.0 truediv(a, b) : -0.4 |
mod表示模數, mul 表示相乘,pow是次方, sub表示相減 ?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |
a = 2 b = 6 print 'a =' , a print 'b =' , b print '\nBitwise:' print 'and_(a, b) :' , and_(a, b) print 'invert(a) :' , invert(a) print 'lshift(a, b) :' , lshift(a, b) print 'or_(a, b) :' , or_(a, b) print 'rshift(a, b) :' , rshift(a, b) print 'xor(a, b) :' , xor(a, b) |
列印結果 ?