1.建立一個(gè)汽車類Auto,包括輪胎個(gè)數(shù),汽車顏色,車身重量,速度等屬性,
并通過(guò)不同的構(gòu)造方法創(chuàng)建實(shí)例。至少要求 汽車能夠加速 減速 停車。
再定義一個(gè)小汽車類CarAuto 繼承Auto 并添加空調(diào)、CD屬性,并且重新
實(shí)現(xiàn)方法覆蓋加速、減速的方法
class Auto:
def __init__(self, tyre_num, color, weight, speed):
self.tyre_num = tyre_num
self.color = color
self.weight = weight
self.speed = speed
def accelerate(self):
print('+')
@classmethod
def slow_down(cls):
print('-')
@staticmethod
def park():
print('=')
class CarAuto(Auto):
def __init__(self, air_con, cd):
super().__init__(2, 2, 2, 2)
self.air_con = air_con
self.cd = cd
def accelerate(self):
print('car+')
@classmethod
def slow_down(cls):
print('car-')
car1 = CarAuto(1, 2)
print(car1.accelerate())
2.創(chuàng)建一個(gè)Person類,添加一個(gè)類字段用來(lái)統(tǒng)計(jì)Perosn類的對(duì)象的個(gè)數(shù)
class Person:
count = 0
def __init__(self):
Person.count += 1
p1 = Person()
p2 = Person()
p3 = Person()
print(Person.count)
3. 創(chuàng)建一個(gè)動(dòng)物類,擁有屬性:性別、年齡、顏色、類型 ,
要求打印這個(gè)類的對(duì)象的時(shí)候以'/XXX的對(duì)象: 性別-? 年齡-?
顏色-? 類型-?/' 的形式來(lái)打印
class Animal:
def __init__(self, gender, age, color, species):
self.gender = gender
self.age = age
self.color = color
self.species = species
def __repr__(self):
return '/%s的對(duì)象: 性別-%s 年齡-%d 顏色-%s 類型-%s/' % \
(self.__class__.__name__, self.gender, self.age, self.color, self.species)
cat = Animal('male', 2, 'black', 'persian cat')
print(cat)
4.寫一個(gè)圓類, 擁有屬性半徑、面積和周長(zhǎng);要求獲取面積和周長(zhǎng)
的時(shí)候的時(shí)候可以根據(jù)半徑的值把對(duì)應(yīng)的值取到。但是給面積和
周長(zhǎng)賦值的時(shí)候,程序直接崩潰,并且提示改屬性不能賦值
class WriteError(Exception):
def __str__(self):
return '改屬性不可修改!'
class Circular:
def __init__(self, radius):
self.radius = radius
self._perimeter = None
self._area = None
@property
def perimeter(self):
return 2*math.pi*self.radius
@perimeter.setter
def perimeter(self, v):
raise WriteError
@property
def area(self):
return math.pi*self.radius**2
@area.setter
def area(self, v):
raise WriteError
c = Circular(3)
print(c.perimeter)
print(c.area)
(嘗試)寫一個(gè)類,其功能是:
1.解析指定的歌詞文件的內(nèi)容
2.按時(shí)間顯示歌詞
提示:歌詞文件的內(nèi)容一般是按下面的格式進(jìn)行存儲(chǔ)的。
歌詞前面對(duì)應(yīng)的是時(shí)間,在對(duì)應(yīng)的時(shí)間點(diǎn)可以顯示對(duì)應(yīng)的歌詞
[00:00.20]藍(lán)蓮花
[00:00.80]沒有什么能夠阻擋
[00:06.53]你對(duì)自由地向往
[00:11.59]天馬行空的生涯
[00:16.53]你的心了無(wú)牽掛
[02:11.27][01:50.22][00:21.95]穿過(guò)幽暗地歲月
[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)蓮花
def read_lyrics(file):
with open(file, 'r', encoding='utf-8') as f:
return f
def extract():
f = open('Lyrics.txt', 'r', encoding='utf-8')
# q = read_lyrics('Lyrics.txt')
list1 = []
lyrics_dict = {}
while True:
line = f.readline()
while line[0] == '[':
key = line[1:9]
list1.append(line[1:9])
line = line[10::]
if line == '':
break
value = line
lyrics_dict[key] = value
print(lyrics_dict)
extract()