python从入门到实践第九章_Python:从入门到实践--第九章-类--练习

#1.冰淇淋小店:冰淇淋小店是一种特殊的餐馆。编写一个名为IceCreamStand的类,让它继承

#练习9-4编写的类。添加一个名为flavors的属性,用于存储一个由各种口味的冰淇淋组成的列表

#编写一个显示这些冰淇淋的方法,创建一个IceCreamStand实例,并调用这个方法classRestaurant():

#餐馆的基本信息

def __init__(self,restaurant_name,cuisine_type):

self.restaurant_name=restaurant_name

self.cuisine_type=cuisine_type

self.number_served= 0def describe_restaurant(self):

print("The restaurant name:" +self.restaurant_name.title())

print("The restaurant's cuisine type:" +self.cuisine_type.title())

def set_number_served(self,number):

self.number_served=number

print('the restaurant has' + str(self.number_served) +'in it.')

def increment_number_served(self,add_number):for i in range(1,6):

self.number_served+=add_number

print('Day' + str(i) + ':restauranr has' + str(self.number_served) + 'in it')

def open_restaurant(self):

print("The" + self.restaurant_name.title() + "is opening...")classIceCreamStand(Restaurant):

def __init__(self,restaurant_name,cuisine_type):

super().__init__(restaurant_name,cuisine_type)

self.flavors=[]

def show_icecream(self):

self.flavors.append('apple')

self.flavors.append('banana')

self.flavors.append('tea')

print("The kinds of icecream have:",self.flavors)

icecream_list= IceCreamStand('百度饮品','饮品')

icecream_list.show_icecream()

#2.管理员:管理员是一种特殊的用户。编写一个名为Admin的类,让它继承9-5编写的User类

#添加一个名为privileges的属性,用于存储一个由字符串(如"can add post","can delete post")等组成的列表。

#编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin实例。

#并调用这个方法classUser():

#用户的基本信息

def __init__(self,first_name,last_name):

self.first_name=first_name

self.last_name=last_name

self.login_attempts= 0def describe_user(self):

print("The user is :" + self.last_name + ' ' +self.first_name)

def great_user(self):

print("Hello!" + self.last_name.title() + ' ' +self.first_name.title())

def increment_login_attempts(self):

self.login_attempts+= 1def reset_login_attempts(self):

self.login_attempts= 0print("the login number has setd to:" +str(self.login_attempts))classAdmin(User):

def __init__(self,first_name,last_name):

super().__init__(first_name,last_name)

self.privileges=[]

def show_privileges(self):

self.privileges.append("can add user")

self.privileges.append("can ban user")

self.privileges.append("can delete user")

print("The Administrator's privileges:",self.privileges)

administrator= Admin('明','晓')

administrator.show_privileges()

#3.权限:编写一个名为Privileges的类,它只有一个属性——privileges,其中

#存储在2中的字符串列表。将方法show_privileges()移到这个类中。在Admin类中

#将一个Privilege实例用作其属性,创建一个Admin实例,并使用方法show_privileges()来显示其权限classUser():

#用户的基本信息

def __init__(self,first_name,last_name):

self.first_name=first_name

self.last_name=last_name

self.login_attempts= 0def describe_user(self):

print("The user is :" + self.last_name + ' ' +self.first_name)

def great_user(self):

print("Hello!" + self.last_name.title() + ' ' +self.first_name.title())

def increment_login_attempts(self):

self.login_attempts+= 1def reset_login_attempts(self):

self.login_attempts= 0print("the login number has setd to:" +str(self.login_attempts))classPrivilege():

def __init__(self):

self.privileges= ["can add user","can ban user","can delete user"]

def show_privileges(self):

print(self.privileges)classAdmin(User):

def __init__(self,first_name,last_name):

super().__init__(first_name,last_name)

self.privileges=Privilege()

def show_privileges(self):

self.privileges.show_privileges()

admin= Admin('ming','xiao')

admin.show_privileges()

#4.电瓶升级:最本节最后一个electric.py版本中,给Battery类添加一个名为upgrade_battery()方法。

#这个方法检查电瓶容量,如果它不是85,就将设为85.创建一辆电瓶容量默认值的电动汽车,调用方法get_range()

#然后对电瓶进行升级,并再次调用get_range(),你会看到这辆汽车的续航里程增加classCar():"""docstring for Car"""def __init__(self, make,model,year):

self.make=make

self.model=model

self.year=year

self.odometer_reading= 0def get_descriptive_name(self):

long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name

#打印里程消息

def read_odometer(self):

print("This car has" + str(self.odometer_reading) + "miles on it.")

#更新里程数

def update_odometer(self,milegeage):if milegeage >=self.odometer_reading:

self.odometer_reading=milegeageelse:

print("You can't roll back an odometer!")

def increment_odometer(self,miles):

self.odometer_reading+=milesclassBattery():"""docstring for Battery"""def __init__(self, battery_size=70):

self.battery_size=battery_size

def describe_battery(self):

print("This car has a" + str(self.battery_size) + "-kWh battery")

def upgrade_battery(self):if self.battery_size!=85:

self.battery_size= 85def get_range(self):if self.battery_size == 70:

range= 240elif self.battery_size== 85:

range= 270message= "This car can go approximately" +str(range)

message+= "miles on a full charge."print(message)

self.upgrade_battery()classElectricCar(Car):"""docstring for ElectricCar"""def __init__(self, make,model,year):

super().__init__(make,model,year)

self.battery_size=Battery()

def describe_battery(self):

self.battery_size.battery_size()

def get_range(self):

self.battery_size.get_range()

my_tesla= ElectricCar('tesla','model s',2016)

my_tesla.get_range()

my_tesla.get_range()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值