1.以下劃線開頭的變數名特定:
"單下劃線" 開始的成員變數叫做保護變數,意思是只有類物件和自類物件自己能訪問到這些變數。
"雙下劃線" 開始的是私有成員,意思是只有類物件自己能訪問,連子類物件也不能訪問到這個資料。
物件導向3要素:封裝,繼承和多型。
(1). 封裝: 封裝是把過程和資料報圍起來,對資料的訪問只能通過已定義的介面。物件導向計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過乙個受保護的介面訪問其他物件。
(2). 繼承: 繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。物件的乙個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
(3)。 多型: 多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、**共享的優勢,很好的解決了應用程式函式同名問題。
2.設計乙個三維向量類,並實現向量的加法、減法以及向量與標量的乘法和除法運算。
class vecter3:
def_init_(self,x=0,y=0,z=0):
self.x=x
self.y=y
self.z=z
def_add_(self,n):
r=vecter3()
r.x=self.x+n.x
r.y=self.y+n.y
r.z=self.z+n.z
return r
def_sub_(self,n):
r=vecter3()
r.x=self.x-n.x
r.y=self.y-n.y
r.z=self.z-n.z
return r
def_mul_(self,n):
r=vecter3()
r.x=self.x*n
r.y=self.y*n
r.z=self.z*n
return r
def_truediv_(self,n):
r=vecter3()
r.x=self.x/n
r.y=self.y/n
r.z=self.z/n
return r
def_floordiv_(self,n):
r=vecter3()
r.x=self.x//n
r.y=self.y//n
r.z=self.z//n
return r
def show(self):
print(self.x,self.y,self.z))
3.使用者輸入一段英文,然後輸出這段英文中所有長度為3個字母的單詞井且如果單詞如果有連續 復了2次,只輸出乙個
import re
x = input('please input a string:')
pattern = re.compile(r'\b[a-za-z]\b')
print(pattern.findall(x))
類和正規表示式
面對帝鄉的三要素 封裝,繼承,多型 封裝對類的資料的賦值 內部呼叫對外部的使用者都是透明的,這使得類成為乙個容器,裡面包含著類的資料和方法。繼承乙個類可以派生出子類,這個父類的屬性 方法自動被子類繼承。多型乙個介面 多種實現。乙個父類派生出不同的子類,且每個子類在繼承父類的方法的同時,又對父類的方法...
包裝類和正規表示式
1 integer 是int的包裝類。2 string str1 abc abc 常量池 首先去常量池中檢視是否 abc 如果沒有生成 abc string str2 new string abc str2 棧 abc 堆 1 split 切割 2 string string 手機號碼 patete...
C 正規表示式類Match和Group類的理解
正規表示式可以看做一種有特定功能的小型程式語言,在一段文字中定位子字串。利用正規表示式可以快速地分析大量的文字以找到特定的字元模式 提取 編輯 替換或刪除文字子字串 或將提取的字串新增到集合。正規表示式的基本語法可參見 深入淺出之正規表示式 一 深入淺出之正規表示式 二 c 命名空間system.t...