- 建立一個汽車類Auto猖任,包括輪胎個數(shù)就珠,汽車顏色寇壳,車身重量,速度等屬性妻怎,并通過不同的構造方法創(chuàng)建實例壳炎。至少要求 汽車能夠加速 減速 停車。 再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)逼侦、CD屬性匿辩,并且重新實現(xiàn)方法覆蓋加速、減速的方法
class Auto:
def __init__(self):
self.color = "red"
self.weight = "100KG"
self.speed = "60km/h"
self.num_tire = 4
def speed_down(self, time):
self.speed = str(int(self.speed[0:-4])- int(time) * 15) + "km/h"
if int(self.speed[0:-4]) >= 0:
return self.speed
else:
return "0km/h"
def speed_up(self, time):
self.speed = str(int(self.speed[0:-4]) + int(time) * 15 )+ "km/h"
if int(self.speed[0:-4]) <= 140:
return self.speed
else:
return "140km/h"
@staticmethod
def shut_down():
print("此時速度為0")
class CarAuto(Auto):
def __init__(self):
super().__init__()
self.air_conditioning = "開空調(diào)"
self.music = "Play CD"
def speed_down(self, time):
self.speed = str(int(self.speed[0:-4])- int(time) * 10) + "km/h"
if int(self.speed[0:-4]) >= 0:
return self.speed
else:
return "0km/h"
def speed_up(self, time):
self.speed = str(int(self.speed[0:-4]) + int(time) * 10 )+ "km/h"
if int(self.speed[0:-4]) <= 160:
return self.speed
else:
return "160km/h"
auto1 = Auto()
auto1.shut_down()
print(auto1.speed_down(3))
print(auto1.speed_up(8))
print(auto1.__dict__)
carauto1 = CarAuto()
carauto1.shut_down()
print(carauto1.speed_down(3))
print(carauto1.speed_up(8))
print(carauto1.__dict__)
- 創(chuàng)建一個Person類榛丢,添加一個類字段用來統(tǒng)計Perosn類的對象的個數(shù)
class Person:
numbers = 0
def __init__(self, name):
self.name = name
Person.numbers += 1
@classmethod
def number(cls):
return cls.numbers
p1 = Person('張三')
p2 = Person('李四')
p3 = Person('陳武')
print(Person.numbers,Person.number()) # 3 3
-
創(chuàng)建一個動物類铲球,擁有屬性:性別、年齡晰赞、顏色稼病、類型 ,
要求打印這個類的對象的時候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
def __init__(self,brand,gender,age,color):
self.brand = brand
self.gender = gender
self.age = age
self.color = color
def __repr__(self):
return "/" + Animal.__name__ + "的對象:" +str(self.__dict__)[1:-1].replace(":","-") + "/"
print(Animal("中華田園犬", "公", 2, "white"))
#/Animal的對象:'brand'- '中華田園犬', 'gender'- '公', 'age'- 2, 'color'- 'white'/
- 寫一個圓類掖鱼, 擁有屬性半徑然走、面積和周長;要求獲取面積和周長的時候的時候可以根據(jù)半徑的值把對應的值取到锨用。但是給面積和周長賦值的時候,程序直接崩潰隘谣,并且提示改屬性不能賦值
import math
class ReadOnlyError(Exception):
def __str__(self):
return '改屬性不能賦值'
class Circle:
def __init__(self, radius):
self.radius = radius
self._area = None
self._perimeter = None
@property
def area(self):
return math.pi * self.radius ** 2
@area.setter
def area(self,value):
raise ReadOnlyError
@property
def perimeter(self):
return 2 * math.pi * self.radius
@perimeter.setter
def perimeter(self, value):
raise ReadOnlyError
rectangle1 = Circle(10)
print(rectangle1.area,rectangle1.perimeter)
rectangle1.radius = 20
print(rectangle1.area,rectangle1.perimeter)
rectangle1.perimeter = 300
-
(嘗試)寫一個類增拥,其功能是:1.解析指定的歌詞文件的內(nèi)容 2.按時間顯示歌詞 提示:歌詞文件的內(nèi)容一般是按下面的格式進行存儲的。歌詞前面對應的是時間寻歧,在對應的時間點可以顯示對應的歌詞
[00:00.20]藍蓮花 [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]當你低頭地瞬間 [02:26.79][02:05.72][00:37.16]才發(fā)覺腳下的路 [02:32.17][00:42.69]心中那自由地世界 [02:37.20][00:47.58]如此的清澈高遠 [02:42.32][00:52.72]盛開著永不凋零 [02:47.83][00:57.47]藍蓮花
class LyricsAnalysis:
"""歌詞解析"""
def __init__(self):
self.lyrics = {}
def analysis(self):
with open("lyrics.txt",encoding="utf-8") as f:
content = f.read().splitlines()
for item in content:
lyric = item.split("]")
for index in range(len(lyric) - 1):
self.lyrics[lyric[index][1::]] = lyric[-1]
print(list(self.lyrics))
def display(self,time):
list_time = list(self.lyrics)
list_time.sort()
for index in range(len(list_time)):
if time < "00:00.20" :
print("藍蓮花")
elif time >= "02:47.83":
print("播放完畢")
else:
if list_time[index] <= time < list_time[index + 1]:
print(self.lyrics[list_time[index + 1]])
#for time1 in list_time:
#print(self.lyrics[time1])
lanlianhua = LyricsAnalysis()
lanlianhua.analysis()
lanlianhua.display("02:30.28 ")