- 建立一個汽車類Auto沛善,包括輪胎個數(shù)蹲坷,汽車顏色驶乾,車身重量,速度等屬性循签,并通過不同的構(gòu)造方法創(chuàng)建實(shí)例级乐。至少要求 汽車能夠加速 減速 停車。 再定義一個小汽車類CarAuto 繼承Auto 并添加空調(diào)县匠、CD屬性风科,并且重新實(shí)現(xiàn)方法覆蓋加速、減速的方法
class Auto:
def __init__(self, tyre, color, weight, speed):
self.tyre = tyre
self.color = color
self.weight = weight
self.speed = speed
def speed_up(self, value):
self.speed += value
print("您的當(dāng)前車速為 {}".format(self.speed))
if self.speed >= 100:
print('您的車速過快乞旦,請減速慢行贼穆!')
raise ValueError
def speed_down(self, value):
self.speed -= value
if self.speed < 0:
print("您當(dāng)前的車速為0已停車,下車請注意安全兰粉!")
elif self.speed < 100:
print("您的當(dāng)前車速為 {}".format(self.speed))
print("您還可以繼續(xù)加速故痊!")
a1 = Auto(12, 'white', '10噸', speed=100)
print(a1.tyre, a1.color, a1.weight, a1.speed)
a1.speed_down(70)
class CarAuto(Auto):
def __init__(self, tyre, color, weight, air_condition, cd, speed):
super().__init__(tyre, color, weight, speed)
self.air_condition = air_condition
self.cd = cd,
def speed_up(self, value):
self.speed += value
if self.speed >= 120:
print("您的當(dāng)前車速為 {}".format(self.speed))
print('您的車速過快,請減速慢行玖姑!')
def speed_down(self, value):
self.speed -= value
if self.speed < 0:
print("您當(dāng)前的車速為0已停車愕秫,下車請注意安全!")
elif self.speed < 120:
print("您的當(dāng)前車速為 {}".format(self.speed))
print("您還可以繼續(xù)加速焰络!")
c1 = CarAuto(4, 'white', '1.5噸', air_condition='media', cd='靜悄悄', speed=80)
print(c1.tyre, c1.color, c1.weight, c1.air_condition, c1.cd, c1.speed)
c1.speed_up(80)
- 創(chuàng)建一個Person類戴甩,添加一個類字段用來統(tǒng)計(jì)Perosn類的對象的個數(shù)
class Person:
count = 0
def __init__(self):
self.name = 'ming'
Person.count += 1
p1 = Person()
p2 = Person()
p3 = p2
print(Person.count)
- 創(chuàng)建一個動物類,擁有屬性:性別闪彼、年齡甜孤、顏色、類型 畏腕,
要求打印這個類的對象的時(shí)候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
def __init__(self, name, sex, age, color, species):
self.name = name
self.sex = sex
self.age = age
self.color = color
self.species = species
def __repr__(self):
print("{}的對象: 名稱-{} 性別-{} 年齡-{} 顏色-{} 類型-{}".format(self.__class__,
self.name, self.sex, self.age, self.color, self.species))
a1 = Animal('tiger', 'male', 8, 'brown', 'feline')
a1.__repr__()
- 寫一個圓類课蔬, 擁有屬性半徑、面積和周長郊尝;要求獲取面積和周長的時(shí)候的時(shí)候可以根據(jù)半徑的值把對應(yīng)的值取到二跋。但是給面積和周長賦值的時(shí)候,程序直接崩潰流昏,并且提示改屬性不能賦值
from math import pi
class WriteError(Exception):
def __str__(self):
return '該屬性不能賦值'
class Circle:
def __init__(self, radius):
if not (isinstance(radius, int) or (isinstance(radius, float))):
raise ValueError
self.radius = radius
self._area = 0
self._perimeter = 0
@property
def area(self):
return pi*self.radius**2
@area.setter
def area(self, value):
raise WriteError
@property
def perimeter(self):
return 2*pi*self.radius
@perimeter.setter
def perimeter(self, value):
raise WriteError
c1 = Circle(4)
print(c1.area, c1.perimeter)
c1.radius = 8
print(c1.area, c1.perimeter)
c1.area = 23
- 寫一個撲克類扎即, 要求擁有發(fā)牌和洗牌的功能(具體的屬性和其他功能自己根據(jù)實(shí)際情況發(fā)揮)
import random
class Poker:
# 創(chuàng)建一副牌
colors = ['?', '?', '?', '?']
numbers = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
kings = [('black', '小王'), ('red', '大王')]
pokers = []
for color in colors:
for num in numbers:
pokers.append((color, num))
pokers.extend(kings)
def __init__(self, landowner):
self.landowner = landowner # 定義地主牌
# 洗牌
def shuffle(self):
random.shuffle(Poker.pokers)
return Poker.pokers
# 發(fā)牌
def deal(self):
deal_pokers = iter(Poker.shuffle(self))
# 創(chuàng)建玩家
player1 = []
player2 = []
player3 = []
# 拿出地主牌
landowner_poker = [next(deal_pokers), next(deal_pokers), next(deal_pokers)]
# 給玩家發(fā)牌
num = 1
for _ in range(51):
if num == 1:
player1.append(next(deal_pokers))
elif num == 2:
player2.append(next(deal_pokers))
elif num == 3:
player3.append(next(deal_pokers))
num = 0
num += 1
# 確定地主
if self.landowner in player1:
player1.extend(landowner_poker)
elif self.landowner in player2:
player2.extend(landowner_poker)
elif self.landowner in player3:
player3.extend(landowner_poker)
print(player1)
print(player2)
print(player3)
p1 = Poker(('black', '小王'))
p1.deal()
- (嘗試)寫一個類吞获,其功能是:1.解析指定的歌詞文件的內(nèi)容 2.按時(shí)間顯示歌詞 提示:歌詞文件的內(nèi)容一般是按下面的格式進(jìn)行存儲的。歌詞前面對應(yīng)的是時(shí)間谚鄙,在對應(yīng)的時(shí)間點(diǎn)可以顯示對應(yīng)的歌詞