python練習題9 類

2021-09-23 07:43:39 字數 1897 閱讀 3633

1.自定義乙個 fruit 類:該類有乙個 類屬性: identify,有兩個物件屬性: name,price,乙個類方法: get_identify,乙個物件方法:get_total_price(num):列印『%s個%s值%s錢』,乙個靜態方法:packing(*fruits)

class fruit:

identify = 'jeff水果公司'

def __init__(self, name, price):

self.name = name

self.price = price

@classmethod

def get_identify(cls):

return cls.identify

def get_total_price(self, num):

print("%s個%s值%s錢" % (num, self.name, str(self.price * int(num))))

@staticmethod

def packing(*fruits):

dic = {}

for i in fruits:

if len(i.name) == 3:

if i.name[1:3] not in dic:

dic[i.name[1:3]] = 1

else:

dic[i.name[1:3]] += 1

else:

if i.name not in dic:

dic[i.name] = 1

else:

dic[i.name] += 1

res = ""

for k, v in dic.items():

res += "%s個%s" % (str(v), k)

print("一箱裝了%s" % res)

yellow_banana = fruit("黃香蕉", 8)

# print(fruit.get_identify())

2.自定義乙個 person 類,該類物件具有 name、weight、height、***,

– 對name屬性進行封裝,但是外界任然可以訪問name以及設定name

– 有乙個方法屬性bmi(標準體重),可以獲取乙個人的bmi,bmi唯讀不可寫,bmi計算規則

– 男:(身高cm-80)× 70﹪ | 女:(身高cm-70)× 60﹪

class person:

def __init__(self, name, weight, height, ***):

self.__name = name

self.weight = weight

self.height = height

self.*** = ***

@property

def name(self):

return self.__name

@name.setter

def name(self, val):

self.__name = val

@property #封裝成乙個屬性

def bmi(self):

if self.*** == "男":

return (self.height - 80) * 0.7

if self.*** == "女":

return (self.height - 70) * 0.6

p1 = person("jeff", 135, 175, "男")

print(p1.name)

print(p1.bmi)

拓展:

用物件導向實現 植物大戰殭屍遊戲

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...

C語言練習題 9

1 1 分析程式,寫出輸出結果?char ptr if ptr char malloc 0 null puts got a null pointer else puts got a valid pointer 會輸出got a valid pointer。原因 malloc 0 會返回乙個特別的可以...