python编辑从入门到实践_类的练习——python编程从入门到实践

9-1 餐馆:创建一个名为Restaurant的类,其方法__init__()设置两个属性:restaurant_name和cuisine_type。创建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,其中前者打印前述两项消息,而后者打印一条消息,指出餐馆正在营业。

根据这个类创建一个名为restaurant的实例,分别打印其两个属性,在调用前述的两个方法。

classRestaurant:def __init__(self, restaurant_name, cuisine_type):"""初始化属性"""self.restaurant_name=restaurant_name

self.cuisine_type=cuisine_typedefdescribe_restaurant(self):"""打印餐馆的名字和类型"""

print("Restaurant Name:" +self.restaurant_name.title())print("Cuisine Type:" +self.cuisine_type.title())defopen_restaurant(self):"""说明餐馆正在营业"""

print("Welcome, our restaurant is open.")

restaurant= Restaurant("big bowl noodle", "chinese")print("Our restaurant'name is" + restaurant.restaurant_name.title() + ".")print("We often" + restaurant.cuisine_type.title() + "type foods.")

restaurant.describe_restaurant()

restaurant.open_restaurant()

9-2 三家餐馆:根据9-1编写的类创建三个实例,并对每个实例调用方法describe_restaurant()。

restaurant1 = Restaurant("future future", "japanese")

restaurant1.describe_restaurant()

restaurant2= Restaurant("Kyo-Chon", "korean type")

restaurant2.describe_restaurant()

restaurant3= Restaurant("houcaller", "western type")

restaurant3.describe_restaurant()

9-3 用户:创建一个名为User的类,其中包含属性first_name和last_name,还有用户简介通常会存储其他几个属性。在类User中定义一个名为describe——user()的方法,它打印用户信息摘要;再定义一个名为greet_user()的方法,它向用户发出个性化的问候。

创建多个表示不同用户的实例,并对每个实例都调用上述的两种方法。

classUser:def __init__(self, first_name, last_name, age, address):"""初始化用户的属性"""self.first_name=first_name

self.last_name=last_name

self.age=age

self.address=addressdefdescribe_user(self):"""打印用户信息摘要"""name= self.first_name.title() + " " +self.last_name.title()print('\n' + name + " " + self.age + "years old!")print("Live in" + self.address.title() + ".")defgreet_user(self):"""向用户问好"""name= self.first_name.title() + " " +self.last_name.title()print("Hello," + name + "!")

user1= User('shirley', 'yang', '18', "xi'an")

user1.describe_user()

user1.greet_user()

user2= User('lucky', 'liu', '24', "beijin")

user2.describe_user()

user2.greet_user()

user3= User('suns', 'zhang', '20', "shanghai")

user3.describe_user()

user3.greet_user()

9-4 就餐人数:在为9-1编写的程序中,添加一个名为number_served的属性,并将其默认值设置为0。根据这个类创建一个名为restaurant的实例;打印有多少人在这家餐馆就餐过,然后修改这个值并再次打印它。

添加一个名为set_number_served()的方法,它让你能够设置就餐人数。调用这个方法并向它传递一个值,然后再次打印这个值。

添加一个名为increment_served()的方法,它让你能够将就餐人数递增。调用这个方法并向它传递一这样的值:你认为这家餐馆每天可能接待的就餐人数。

classRestaurant:def __init__(self, restaurant_name, cuisine_type):"""初始化属性"""self.restaurant_name=restaurant_name

self.cuisine_type=cuisine_type

self.number_served=0defdescribe_restaurant(self):"""打印餐馆的名字和类型"""

print("Restaurant Name:" +self.restaurant_name.title())print("Cuisine:" +self.cuisine_type.title())defread_number_served(self):"""在餐馆就餐过的人数"""

print("Our served" + str(self.number_served) + "people.\n")defset_number_served(self, number):"""设置就餐人数"""self.number_served=numberdefincrement_number_served(self, increment_number):"""递增就餐人数"""self.number_served= self.number_served +increment_number

restaurant= Restaurant("big bowl noodle", "chinese")

restaurant.describe_restaurant()

restaurant.read_number_served()#打印默认就过餐人数

restaurant.number_served= 200 #直接修改就过餐人数

restaurant.read_number_served() #打印修改后的就过餐的人数

restaurant.set_number_served(60) #调用方法设置就餐的人数

restaurant.read_number_served() #打印调用方法修改后的就过餐的人数

restaurant.increment_number_served(140) #调用方法增加就餐人数

restaurant.read_number_served() #打印递增后就过餐的人数

9-5 尝试登陆次数:在9-3编写的User类中,添加一个名为login_attempts的属性。编写一个名为increment_login_attempts()的方法,它将属性login_attempts的值加。再编写一个名为reset_login_attempts()的方法,它将属性login_attempts的值重置为0.

根据User类创建一个实例,再调用方法increment_login_attempts()多次。打印属性login_attempts的值,确认它被正确地递增;然后,调用方法reset_login_attempts(),并再次打印属性login_attempts的值,确认它被重置为0。

classUser:def __init__(self, first_name, last_name):"""初始化用户的属性"""self.first_name=first_name

self.last_name=last_name

self.login_attempts=0defgreet_user(self):"""向用户问好"""name= self.first_name.title() + " " +self.last_name.title()print("Hello," + name + "!")defincrement_login_attempts(self):"""增加登录次数"""self.login_attempts= self.login_attempts + 1

defreset_login_attempts(self):"""重置登录次数"""self.login_attempts=0

user= User('mark', 'sun')

user.greet_user()#调用方法递增登录次数

for i in range(5):

user.increment_login_attempts()print("You have login" + str(user.login_attempts) + "times.") #验证登录次数被正确递增

user.reset_login_attempts() #调用方法重置登录次数

print("You login" + str(user.login_attempts) + "time.") #确认登录次数被重置

9-6 冰淇淋小店:冰淇淋小店是一种特殊的餐馆。编写一个名为IceCreamStand的类,让它继承9-1或9-4编写的Restaurant类。这两个版本的Restaurant类都可以,选一个即可。添加一个名为flavors的属性,用于存储一个由各种口味的冰淇淋组成的列表。编写一个显示这些冰淇淋的方法。创建一个IceCreamStand实例,并调用这个方法。

classIceCreamStand(Restaurant):def __init__(self, restaurant_name, cuisine_type):"""初始化父类的所有属性"""super().__init__(restaurant_name, cuisine_type)

self.flavors= ['Green tea', 'rum', 'mango', 'vanilla', 'strawberry', 'chocolate']defshow_icecream_flavors(self):"""显示店中所有冰淇淋口味"""

print("We provide following flavors IceCream:")for flavor inself.flavors:print(flavor.title())

icecreamstand= IceCreamStand('love', 'icecream')

icecreamstand.describe_restaurant()

icecreamstand.show_icecream_flavors()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值