python練習題之物件導向(二)

2022-06-24 03:33:12 字數 3904 閱讀 3190

# 1、python物件導向程式設計中,內建方法__str__、__add__如何使用,可以**舉例

class vector:

def __init__(self, a, b):

self.a = a

self.b = b

def __str__(self):

return 'vector (%d, %d)' % (self.a, self.b)

def __add__(self, other):

return vector(self.a + other.a, self.b + other.b)

v1 = vector(2, 10)

v2 = vector(5, -2)

v3 = vector(10, 10)

print(v1+v2+v3)

# 2、設計乙個車類,屬性:車的型別、車的速度、

# 分別再建立兩個子類:小汽車類、電動汽車類 去繼承車類

# 為了實現汽車增加能源的方式,在父類中新增 乙個增加能源方法 increased_energy() 做出抽象方法

# 實現小汽車類加 油 電動汽車充電的不同實現

from abc import abcmeta,abstractmethod

class vehicle(metaclass=abcmeta): #車類

def __init__(self,mold,speed):

self.mold=mold

self.speed=speed

@abstractmethod

def increased_energy(self):

pass

class car(vehicle): #車的子類,小汽車類,繼承父類的構造方法

def __init__(self,mold,speed):

vehicle.__init__(self,mold,speed)

def increased_energy(self):

print(self.mold+'需要加油,能達到速度',self.speed)

class bus(vehicle): #車的子類,電動汽車類,繼承父類的構建方法

def __init__(self,mold,speed):

vehicle.__init__(self,mold,speed)

def increased_energy(self):

print(self.mold+'需要加油,能達到速度',self.speed)

car1=car('小汽車',120)

car1.increased_energy()

bus01=car('公共汽車',80)

bus01.increased_energy()

# 3、設計乙個資料型別類 datatype ,包含乙個抽象方法 length 方法,

# 並建立多個子類(dict、list、string、tuple)對length 方法進行實現:

# 如dict子類 實現length方法功能,輸出顯示「字典形式的資料,包含3個項」,依次類推

# 建立乙個get_length方法,能實現傳入不同的子類物件,輸出不同的求長度的結果

from abc import abcmeta,abstractmethod

class datatype(metaclass=abcmeta): #抽象類datatype

@abstractmethod

def length(self): #抽象方法length

pass

class dict(datatype):

def length(self):

print('字典形式的資料,包含3個項')

def get_length(self,object):

return len(object.keys())

class list(datatype):

def length(self):

print('列表形式的資料,包含3個項')

def get_length(self,object):

return len(object)

class string(datatype):

def length(self):

print('字串形式的資料,包含3個項')

def get_length(self,object):

return len(object)

class tuple(datatype):

def length(self):

print('元組形式的資料,包含3個項')

def get_length(self,object):

return len(object)

dict = dict()

dict01= dict.get_length()

print(dict01)

dict = list()

dict01= dict.get_length([23,3,2,99,77])

print(dict01)

dict = tuple()

dict01= dict.get_length((23,3,2,56,'iji'))

print(dict01)

dict = string()

dict01= dict.get_length('232')

print(dict01)

# 4、在異常處理中這些try、except、else、finally、raise有什麼含義

#try:捕會出現異常的**

#except:捕獲異常並處理

#else:沒有發生異常,就執行此語句

#finally:無論是否發生,都執行此異常

try:

num=int(input('請輸入0-4以內的數字:'))

list1=[44,55,88,32,15]

print(list1[num])

except indexerror as e:

print('資料越界了')

else:

print('輸入正常')

finally:

print('程式結束了')

#raise:引發乙個異常

def abcerr():

raise exception('丟擲乙個異常')

print('hello')

try:

abcerr()

except exception as x:

print(x)

# 5、建立乙個使用者自定義異常usernameinputerror,如果使用者使用者名稱輸入錯誤,能通過捕獲錯誤並提示使用者名稱***輸入錯誤

def usernameinputerror(a):

username=input('請輸入使用者名稱:')

if a!=username:

raise exception('使用者名稱'+username+'輸入錯誤')

try:

usernameinputerror('admin123')

except exception as u:

print(u)

# 6、調研完成python讀取 .ini檔案 以及 讀取yaml檔案的實現

file1 = 'e:\\桌面\\自動化測試專案\\homework\\data\\in.ini'

str=open(file1,'r',encoding='utf-8')

a=str.read()

print(a)

yamlpath = 'e:\\桌面\\自動化測試專案\\homework\\data\\user.yaml'

str=open(file1,'r',encoding='utf-8')

a=str.read()

print(a)

物件導向練習題

一 讀程式 1 寫出下列 的執行結果 class fatherclass public class test extends fatherclass public static void main string args 結果 fatherclass create fatherclass creat...

物件導向練習題

class myyear object definit self self.year int input 請輸入年份 def show season self for i in range 1,13 if i in 12,1,2 print i,冬季 elif i in 3,4,5 print i,...

Python物件導向程式設計練習題

要求 1.系統執行時,使用乙個列表物件來儲存註冊使用者資料。使用者查詢 修改 刪除和新增等操作都針對該列表進行。2.列表中的每個元素為類的例項物件,物件的屬性儲存註冊使用者的使用者名稱和登入密碼,物件的方法提供修改屬性值功能。3.註冊使用者資料存放在檔案中,系統啟動時將檔案中儲存的使用者資料列表物件...