- 建立一個汽車類Auto得院,包括輪胎個數(shù)傻铣,汽車顏色,車身重量祥绞,速度等屬性非洲,并通過不同的構(gòu)造方法創(chuàng)建實(shí)例。至少要求 汽車能夠加速 減速 停車蜕径。 再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)两踏、CD屬性,并且重新實(shí)現(xiàn)方法覆蓋加速兜喻、減速的方法
class Auto:
def __init__(self, tyres, color, weight):
self.tyres = tyres
self.color = color
self.weight = weight
self.speed = 0
def add_speed(self):
self.speed += 1
def reduce_speed(self):
self.speed -= 1
def stop(self):
self.speed = 0
class CarAuto(Auto):
def __init__(self, tyres, color, weight, airer, cder):
super().__init__(tyres, color, weight)
self.airer = airer
self.cder = cder
def add_speed(self):
self.speed += 2
print('當(dāng)前速度加速到%s' % self.speed)
def reduce_speed(self):
self.speed -= 2
print('當(dāng)前速度減速到%s' % self.speed)
- 創(chuàng)建一個Person類梦染,添加一個類字段用來統(tǒng)計(jì)Perosn類的對象的個數(shù)
class Person:
count = 0
def __init__(self):
Person.count += 1
- 創(chuàng)建一個動物類,擁有屬性:性別朴皆、年齡帕识、顏色、類型 遂铡,
要求打印這個類的對象的時候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
def __init__(self, gender:str, age:str, color:str, form:str):
self.gender = gender
self.age = age
self.color = color
self.form = form
def __repr__(self):
return '/'+Animal.__name__+'的對象: 性別-'+self.gender+ ' 年齡-'+self.age+ ' 顏色-'+self.color +' 類型-'+self.form+'/'
- 寫一個圓類肮疗, 擁有屬性半徑、面積和周長扒接;要求獲取面積和周長的時候的時候可以根據(jù)半徑的值把對應(yīng)的值取到伪货。但是給面積和周長賦值的時候,程序直接崩潰钾怔,并且提示改屬性不能賦值
class Circle:
def __init__(self, radius):
if radius >= 0:
self.radius = radius
self._circumference = 0
self._area = 0
else:
raise ValueError
@property
def circumference(self):
self._circumference = 2 * 3.14 * self.radius
return self._circumference
@circumference.setter
def circumference(self, value):
raise WriteError
@property
def area(self):
self._area = 3.14 * self.radius ** 2
return self._area
@area.setter
def area(self, value):
raise WriteError
class WriteError(Exception):
def __str__(self):
return '該屬性不能賦值<詈簟!蒂教!'
class ValueError(Exception):
def __str__(self):
return '半徑必須大于零N【佟!凝垛!'
- 寫一個撲克類懊悯, 要求擁有發(fā)牌和洗牌的功能(具體的屬性和其他功能自己根據(jù)實(shí)際情況發(fā)揮)
import random
class Poker:
def __init__(self):
self._card_type = ['?', '?', '?', '?']
self._card_values = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
self._cards = ['大王', '小王']
@property
def card_type(self):
return self._card_type
@card_type.setter
def card_type(self, value):
raise ValueError
@property
def card_values(self):
return self._card_values
@card_values.setter
def card_values(self, value):
raise ValueError
@property
def cards(self):
return self._cards
@cards.setter
def cards(self, value):
raise ValueError
# 洗牌
def reform(self):
for i in self._card_type:
for j in self._card_values:
self._cards.append((i + j))
random.shuffle(self._cards)
return self._cards
# 發(fā)牌
def deal(self):
print('牌都是我的!')
- (嘗試)寫一個類梦皮,其功能是:1.解析指定的歌詞文件的內(nèi)容 2.按時間顯示歌詞 提示:歌詞文件的內(nèi)容一般是按下面的格式進(jìn)行存儲的炭分。歌詞前面對應(yīng)的是時間,在對應(yīng)的時間點(diǎn)可以顯示對應(yīng)的歌詞
[00:00.20]藍(lán)蓮花
[00:00.80]沒有什么能夠阻擋
[00:06.53]你對自由地向往
[00:11.59]天馬行空的生涯
[00:16.53]你的心了無牽掛
[02:11.27][01:50.22][00:21.95]穿過幽暗地歲月
[02:16.51][01:55.46][00:26.83]也曾感到彷徨
[02:21.81][02:00.60][00:32.30]當(dāng)你低頭地瞬間
[02:26.79][02:05.72][00:37.16]才發(fā)覺腳下的路
[02:32.17][00:42.69]心中那自由地世界
[02:37.20][00:47.58]如此的清澈高遠(yuǎn)
[02:42.32][00:52.72]盛開著永不凋零
[02:47.83][00:57.47]藍(lán)蓮花
class Lrc:
# 格式化
def analysis(self):
with open("藍(lán)蓮花.lrc", "r", encoding="utf-8") as f:
lrc = f.readlines()
lrc_dict = {}
for i in lrc:
lrc_word = i.replace("[", "]").strip().split("]")
for j in range(len(lrc_word) - 1):
if lrc_word[j]:
lrc_dict[lrc_word[j]] = lrc_word[-1]
f = open("藍(lán)蓮花_副本.lrc", "w", encoding="utf-8")
f.write(str(lrc_dict))
f.close()
def obtain(self):
get_lrc = input('請輸入時間點(diǎn)(格式為xx:xx.xx):')
lrc_list = []
with open("藍(lán)蓮花_副本.lrc", "r", encoding="utf-8") as f:
lrc = eval(f.read())
for time in lrc:
lrc_list.append(time)
lrc_list.sort()
for i in range(len(lrc_list)-1):
if lrc_list[i] <= get_lrc <= lrc_list[i+1]:
print(lrc[lrc_list[i]])