python3 class類 練習題


"""
一、定義一個學生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
20
100
"""

class Student():
    # 構造函數
    # 對當前對象的實例的初始化
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    #   isinstance函數判斷一個對象是否是一個已知的類型,類似type
    def get_name(self):
        if isinstance(self.name, str):
            return self.name

    def get_age(self):
        if isinstance(self.age, int):
            return self.age

    def get_course(self):
        a = max(self.score)
        if isinstance(a, int):
            return a


zm = 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

    def del_dict(self, key):
        if key in self.classs.keys():
            del self.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())

    def update_dict(self, dict1):
        # 方法1
        # self.classs.update(dict1)
        # 方法2,對於重復的key,B會覆蓋A
        a = dict(self.classs, **dict1)
        return a


a = Dictclass({"姓名": "張三", "年齡": "18", "性別": ""})
print(a.del_dict("年齡"))
print(a.get_dict("姓名"))
print(a.get_key())
print(a.update_dict({"年薪": 0}))

 

"""
三、定義一個列表的操作類: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

    def add_key(self, keyname):
        if isinstance(keyname, (str, int)):
            self.listt.append(keyname)
            return self.listt
        return "error"

    def get_key(self, num):
        if num >= 0 and num < len(self.listt):
            a = self.listt[num]
            return a
        return "超出取值范圍"

    def update_list(self, list1):
        if isinstance(list1, list):
            self.listt.extend(list1)
            return self.listt
        return "類型錯誤"

    def del_key(self):
        a = self.listt.pop(-1)
        return a


a = 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

    def add_setinfo(self, keyname):
        if isinstance(keyname, (str, int)):
            self.sett.add(keyname)
            return self.sett

    def get_intersection(self, unioninfo):
        if isinstance(unioninfo, set):
            a = self.sett & (unioninfo)
            return a

    def get_union(self, unioninfo):
        if isinstance(unioninfo, set):
            a = self.sett | (unioninfo)
            return a

    def del_difference(self, unioninfo):
        if isinstance(unioninfo, set):
            a = self.sett - (unioninfo)
            return a


a = Setinfo({1, "a", 2, "b", 3, "c"})
print(a.add_setinfo(4))
print(a.get_intersection({1, 2, "a"}))
print(a.get_union({2, 3, 4, "c", "d"}))
print(a.del_difference({1, 2, 3, 4}))

 

 

 

 

 

 

 

 

 


原文:https://blog.csdn.net/bullpride/article/details/52022701


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM