from math importhypot
#定義向量的構造方法
class
vector:
def__init__(self,x=0,y=0):
self.x=x;
self.y=y;
'''__repr__是python的內建方法,他能將乙個物件用字串的形式表達出來
%r用rper()方法處理物件 輸出結果 'content'
%s用str()方法處理物件 輸出結果 content 不帶引號
如果你只想實現這兩個特殊方法中的乙個,__repr__ 是更好的選擇,因為如果乙個物件
沒有 __str__ 函式,而 python 又需要呼叫它的時候,直譯器會用 __repr__ 作為替代
'''def
__repr__
(self):
return
'vector(%r,%r)
' %(self.x,self.y)
'''定義__abs__方法
返回hypot函式的運算結果
hypot() 返回歐幾里德範數 sqrt(x*x + y*y)。
'''def
__abs__
(self):
return
hypot(self.x,self.y)
'''bool(abs(self)) 把模值變成了布林值
我們對 __bool__ 的實現很簡單,如果乙個向量的模是 0,
那麼就返回 false,其他情況則返回 true。
如果想讓 vector.__bool__ 更高效,可以採用這種實現:
def __bool__(self):
return bool(self.x or self.y)
'''def
__bool__
(self):
return
bool(abs(self))
'''__add__ 和 __mul__,這兩個方法的返回值都是新建立的向量物件,
other代表其他向量物件,
其返回值都是靠運算子 + 或者 * 實現的運算結果
'''def
__add__
(self, other):
x=self.x+other.x
y=self.y+other.y
return
vector(x,y)
def__mul__
(self,scalar):
return vector(self.x*scalar,self.y*scalar)
#建立兩個向量例項 v1 v2
print('
*************************====輸出兩個向量加運算********************====')
v1=vector(2,4)
v2=vector(2,1)
print(v1+v2)
print('
*************************====輸出單個向量歐幾里德運算********************====')
#求該向量的歐幾里得範數
v=vector(3,4)
(abs(v))
print('
*************************====輸出單個向量的標量乘法運算********************====')
print(v*3)
print(abs(v*3)) #
(3*3)(3*3) +(4*3)(4*3) 的結果開方
python3運算子 Python3 運算子
python3 運算子 python3 支援以下型別運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 算術運算 a b 2,3 運算子說明 示例加 將兩個物件相加 a b 結果 5 減 將兩個物件相減 a b 結果 1 乘 將兩個物件相...
python3運算子 Python3運算子
什麼是運算子?本章節主要說明python的運算子。舉個簡單的例子 4 5 9。例子中,4 和 5 被稱為運算元,稱為運算子。python語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 接下來讓我們乙個個來學習pyth...
python3 定義函式
在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。我們以自定義乙個求絕對值的my abs函式為例 def my abs x if x 0 return x else return x 請自行測試並...