Python编程从⼊门到实践动⼿试⼀试第9章答案
9-1 餐馆
创建⼀个名为Restaurant的类。其⽅法__init__()设置两个属性:
restaurant_name和cuisine_type
创建⼀个名为describe_restaurant()的⽅法和⼀个名为open_restaurant()的⽅法;
其中前者打印前述两项信息,⽽后者打印⼀条信息指出餐馆正在营业。
根据这个类创建⼀个名为restaurant的实例,分别打印其两个属性,再调⽤前述两个⽅法。
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.cuisine_type = cuisine_type
def describe_restaurant(self):
print("餐厅的名字是" + staurant_name)
print("它的类型是" + self.cuisine_type)
def open_restaurant(self):
print("正在营业,欢迎光临!")
restaurant = Restaurant("欧佳⽜排","西餐厅")
restaurant.describe_restaurant()
restaurant.open_restaurant()
9-2 三家餐馆
根据你为完成练习9-1⽽编写的类创建三个实例。
并对每个实例调⽤⽅法describe_restaurant()。
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.cuisine_type = cuisine_type
def describe_restaurant(self):
print("餐厅的名字是" + staurant_name)
print("它的类型是" + self.cuisine_type + "\n")
def open_restaurant(self):
print("正在营业,欢迎光临!")
restaurant1 = Restaurant("欧佳⽜排","西餐厅")
restaurant1.describe_restaurant()python编程:从入门到实践第二版
restaurant2 = Restaurant("⾃助烤⾁","⾃助")
restaurant2.describe_restaurant()
restaurant3 = Restaurant("中餐厅","中餐")
restaurant3.describe_restaurant()
9-3 ⽤户
创建⼀个名为User的类,其中包含属性first_name和last_name,
还有⽤户简介通常会存储的其他⼏个属性。
在类User中定义⼀个名为describe_user()的⽅法,它打印⽤户信息摘要;
再定义⼀个名为greet_user()的⽅法,它向⽤户发出个性化的问候。
创建多个表⽰不同⽤户的实例,并对每个实例都调⽤上述两个⽅法。
class User():
def __init__(self,first_name,last_name,sex,age):
self.first_name = first_name
self.last_name = last_name
self.sex = sex
self.age = age
def describe_user(self):
print(self.last_name + self.first_name + ",性别:"
+ self.sex + ",年龄:" + str(self.age))
def greet_user(self):
if self.sex == "男":
print(self.last_name + "先⽣,您好!")
else:
print(self.last_name + "⼥⼠,您好!")
user1 = User("三","张","男",20)
user1.describe_user()
<_user()
user1 = User("丽丽","韩","⼥",21)
user1.describe_user()
<_user()
user1 = User("四","赵","男",22)
user1.describe_user()
<_user()
9-4 就餐⼈数
在为完成练习9-1⽽编写的程序中添加⼀个名为number_served的属性,
并将其默认值设置为0。
根据这个类创建⼀个名为restaurant的实例;
打印有多少⼈在这家餐厅就餐过,然后修改这个值并再次打印它。
添加⼀个名为set_number_served的⽅法,它让你能够设置就餐⼈数。
调⽤这个⽅法并向它传递⼀个值,然后再次打印这个值。
添加⼀个名为increment_number_served()的⽅法,它让你能够将就餐⼈数传递。
调⽤这个⽅法,并向它传递⼀个这样的值:你认为这家餐厅每天可能接待的就餐⼈数。
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.cuisine_type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print("餐厅的名字是" + staurant_name)
print("它的类型是" + self.cuisine_type)
print("有" + str(self.number_served) + "⼈在这家餐厅就餐过.")
def open_restaurant(self):
print("正在营业,欢迎光临!")
def set_number_served(self,number):
self.number_served = number
restaurant = Restaurant("欧佳⽜排","西餐厅")
restaurant.describe_restaurant()
restaurant.open_restaurant()
print("\n")
restaurant.set_number_served(10)
restaurant.describe_restaurant()
9-5 尝试登录次数
在为完成练习9-3⽽编写的User类中,添加⼀个名为login_attempts的属性。
编写⼀个名为increment_login_attempts()⽅法,它将属性login_attempts的值增加1.再编写⼀个名为reset_login_attempts()的⽅法,它将属性login_attempts的值重置为0.根据User类创建⼀个实例,再调⽤⽅法increment_login_attempts()多次。
打印属性login_attempts()的值,确认它被重置为0.
class User():
def __init__(self,first_name,last_name,sex,age):
self.first_name = first_name
self.last_name = last_name
self.sex = sex
self.age = age
self.login_attempts = 0
def increment_login_attempts(self):
self.login_attempts += 1
print("登录次数为:" + str(self.login_attempts))
def reset_login_attempts(self):
self.login_attempts = 0
print("登录次数为:" + str(self.login_attempts))
user1 = User("三","张","男",20)
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
9-6 冰淇淋⼩店
冰淇淋⼩店是⼀种特殊的餐馆,编写⼀个名为IceCreamStand的类,
让它继承你为完成练习9-1或练习9-4⽽编写的Restaurant类。
这两个版本的Restaurant类都可以,挑选你更喜欢哪个即可。
添加⼀个名为flavors的属性,⽤于存储⼀个由各种⼝味的冰淇淋组成的列表。
编写⼀个能显⽰这些冰淇淋的⽅法。
创建⼀个实例并调⽤这个⽅法。
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.cuisine_type = cuisine_type
def describe_restaurant(self):
print("餐厅的名字是" + staurant_name)
print("它的类型是" + self.cuisine_type)
def open_restaurant(self):
print("正在营业,欢迎光临!")
class IceCreamStand(Restaurant):
def __init__(self,restaurant_name,cuisine_type):
super().__init__(restaurant_name,cuisine_type)
self.flavors = ["草莓味","苹果味","蓝莓味"]
def display(self):
print("冰淇淋的⼝味有以下⼏种:")
print(self.flavors)
my_ice_cream = IceCreamStand("冰淇淋⼩店","甜品站")
my_ice_cream.describe_restaurant()
my_ice_cream.display()
9-7 管理员
管理员是⼀种特殊的⽤户,编写⼀个名为Admin的类,让它继承练习9-5⽽编写的User类。添加⼀个名为privileges的属性,⽤于存储⼀个由字符串组成的列表。
(如"can add post",“can delete post”,“can be user”)
编写⼀个名为show_privileges()的⽅法,它显⽰管理员的权限。
创建⼀个Admin实例,并调⽤这个⽅法。
class User():
def __init__(self,first_name,last_name,sex,age):
self.first_name = first_name
self.last_name = last_name
self.sex = sex
self.age = age
self.login_attempts = 0
class Admin(User):
def __init__(self,first_name,last_name,sex,age):
super().__init__(first_name,last_name,sex,age)
self.privileges = ["can add post","can delete post","can be user"]
def show_privileges(self):
print(self.privileges)
user1 = Admin("三","张","男",20)
user1.show_privileges()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。