python3 class類 練習題

2022-08-25 22:33:25 字數 4460 閱讀 7430

"""

一、定義乙個學生student類。有下面的類屬性:

1 姓名 name

2 年齡 age

3 成績 score(語文,數學,英語) [每課成績的型別為整數]

類方法:

1 獲取學生的姓名:get_name() 返回型別:str

2 獲取學生的年齡:get_age() 返回型別:int

3 返回3門科目中最高的分數。get_course() 返回型別:int

寫好類以後,可以定義2個同學測試下:

zm = student('zhangming',20,[69,88,100])

返回結果:

zhangming

20100

"""

class

student():

#建構函式

#對當前物件的例項的初始化

def__init__

(self, name, age, score):

self.name =name

self.age =age

self.score =score

#isinstance函式判斷乙個物件是否是乙個已知的型別,類似type

defget_name(self):

ifisinstance(self.name, str):

return

self.name

defget_age(self):

ifisinstance(self.age, int):

return

self.age

defget_course(self):

a =max(self.score)

ifisinstance(a, int):

return

azm = student('

zhangming

', 20, [69, 88, 100])

print

(zm.get_name())

print

(zm.get_age())

print(zm.get_course())

"""二、定義乙個字典類:dictclass。完成下面的功能:

dict = dictclass()

1 刪除某個key

del_dict(key)

2 判斷某個鍵是否在字典裡,如果在返回鍵對應的值,不存在則返回"not found"

get_dict(key)

3 返回鍵組成的列表:返回型別;(list)

get_key()

4 合併字典,並且返回合併後字典的values組成的列表。返回型別:(list)

update_dict()

"""

class

dictclass():

#建構函式

#對當前物件的例項的初始化

def__init__

(self, class1):

self.classs =class1

defdel_dict(self, key):

if key in

self.classs.keys():

delself.classs[key]

return

self.classs

return

"不存在這個值,無需刪除

"def

get_dict(self, key):

if key in

self.classs.keys():

return

self.classs[key]

return

"not found

"def

get_key(self):

return

list(self.classs.keys())

defupdate_dict(self, dict1):

#方法1

#self.classs.update(dict1)

#方法2,對於重複的key,b會覆蓋a

a = dict(self.classs, **dict1)

return

aa = dictclass()

print(a.del_dict("年齡"

))print(a.get_dict("姓名"

))print

(a.get_key())

print(a.update_dict())

"""三、定義乙個列表的操作類:listinfo

包括的方法:

1 列表元素新增: add_key(keyname) [keyname:字串或者整數型別]

2 列表元素取值:get_key(num) [num:整數型別]

3 列表合併:update_list(list) [list:列表型別]

4 刪除並且返回最後乙個元素:del_key()

a = listinfo([44,222,111,333,454,'sss','333'])

"""

class

listinfo():

def__init__

(self, my_list):

self.listt =my_list

defadd_key(self, keyname):

ifisinstance(keyname, (str, int)):

return

self.listt

return

"error

"def

get_key(self, num):

if num >= 0 and num a =self.listt[num]

return

a

return

"超出取值範圍

"def

update_list(self, list1):

ifisinstance(list1, list):

self.listt.extend(list1)

return

self.listt

return

"型別錯誤

"def

del_key(self):

a = self.listt.pop(-1)

return

aa = listinfo([44, 222, 111, 333, 454, '

sss', '

333'

])print(a.add_key(1))

print(a.get_key(1))

print(a.update_list([1, 2, 3]))

print(a.del_key())

"""定義乙個集合的操作類:setinfo

包括的方法:

1 集合元素新增: add_setinfo(keyname) [keyname:字串或者整數型別]

2 集合的交集:get_intersection(unioninfo) [unioninfo :集合型別]

3 集合的並集: get_union(unioninfo)[unioninfo :集合型別]

4 集合的差集:del_difference(unioninfo) [unioninfo :集合型別]

set_info = setinfo(你要操作的集合)

"""

class

setinfo():

def__init__

(self, my_set):

self.sett =my_set

defadd_setinfo(self, keyname):

ifisinstance(keyname, (str, int)):

self.sett.add(keyname)

return

self.sett

defget_intersection(self, unioninfo):

ifisinstance(unioninfo, set):

a = self.sett &(unioninfo)

return

a

defget_union(self, unioninfo):

ifisinstance(unioninfo, set):

a = self.sett |(unioninfo)

return

a

defdel_difference(self, unioninfo):

ifisinstance(unioninfo, set):

a = self.sett -(unioninfo)

return

aa = setinfo()

print(a.add_setinfo(4))

print(a.get_intersection())

print(a.get_union())

print(a.del_difference())

原文:

python3 class寫法 新式類 經典類

經典類與新式類 python2和python3中新式類 經典類 舊式類 的區別 python新式類與經典類的區別 經典類 不由任意內建型別派生出的類 新式類 由任意內建型別派生出的類 只要乙個內建型別位於類樹的某個位置 python2.1 只有經典類 python2.2 引入新式類 python3 ...

python基礎篇 Class 類

class 類 特點 乙個抽象的物件,是物件導向語言的核心,類可以不繼承或多繼承。標識 class 例子 class a object 這是乙個演示的類 count a def init self,a self.a a def str self print count a s,list a s se...

python3 筆記18 構建類class

類是面對物件語言中獨有的。類 可以定義框架 類屬性 和對應使用的方法 根據類可以構建物件,構造出的物件將滿足可以使用該類所有的方法,並且擁有所有的屬性 格式 class 類名 類變數 0 構建計數使用 非必須 def init self,屬性1,屬性2,初始化引數,引數可以作用於全域性 非必須 se...