9-1:餐馆 : 创建一个名为Restaurant的类,其方法__init__( ) 设置两个属性: restaurant_name 和cuisine_type 。 创建一个名为
describe_restaurant( ) 的方法和一个名为open_restaurant( ) 的方法, 其中前者打印前述两项信息, 而后者打印一条消息,
指出餐馆正在营业。根据这个类创建一个名为restaurant 的实例, 分别打印其两个属性, 再调用前述两个方法。
class Restaurant(object):
'''添加restaurant_name 和cuisine_type两个属性'''
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name=restaurant_name
self.cuisine_type=cuisine_type
'''调用init中restaurant_name 和cuisine_type的属性'''
def __str__(self):
return self.restaurant_name,self.cuisine_type
'''建一个名为describe_restaurant()的方法和一个名为
open_restaurant()的方法,其中前者打印前述两项信息,
而后者打印一条消息,指出餐馆正在营业。'''
def describe_restaurant(self):
return self.restaurant_name,self.cuisine_type
def open_restaurant(self):
infornmatization=self.restaurant_name+' '+'营业时间为10:00.am—11:00.pm'
print(infornmatization)
obj=Restaurant('寿司店','日式料理')
ret=obj.__str__()
ret2=obj.describe_restaurant()
obj.open_restaurant()
print(ret)
print(ret2)
**output**
寿司店 营业时间为10:00.am—11:00.pm
('寿司店', '日式料理')
('寿司店', '日式料理')
9-2:三家餐馆:根据你为完成练习 9-1而编写的类创建三个实例, 并对每个实例调用方法describe_restaurant()
class Restaurant(object):
'''添加restaurant_name()和cuisine_type()两个属性'''
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name=restaurant_name
self.cuisine_type=cuisine_type
'''调用init中restaurant_name()和cuisine_type()的属性'''
def __str__(self):
return self.restaurant_name,self.cuisine_type
'''建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,其中前者打印前述两项信息,
而后者打印一条消息,指出餐馆正在营业。'''
def describe_restaurant(self):
return self.restaurant_name,self.cuisine_type
def open_restaurant(self):
infornmatization=self.restaurant_name+' '+'营业时间为10:00.am—11:00.pm'
print(infornmatization)
obj1=Restaurant('寿司店','日式料理')
obj2=Restaurant('西餐厅','西式')
obj3=Restaurant('中国餐厅','中式菜')
ret1=obj1.describe_restaurant()
ret2=obj2.describe_restaurant()
ret3=obj3.describe_restaurant()
print(ret1)
print(ret2)
print(ret3)
**output**
('寿司店', '日式料理')
('西餐厅', '西式')
('中国餐厅', '中式菜')
9-3 用户:创建一个名为User 的类, 其中包含属性first_name 和last_name,还有用户简介通常会存储的其他几个属性。在类User中
定义一个名为describe_user( ) 的方法, 它打印用户信息摘要; 再定义一个名为greet_user( ) 的方法, 它向用户发出个性化的问候。
创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。
class User(object):
def __init__(self,first_name,last_name,gender):
self.first_name=first_name
self.last_name=last_name
self.gender=gender
def describe_user(self):
abstract='姓:'+self.first_name+' '+'名:'+self.last_name+' '+'性别:'+self.gender
print(abstract)
def greet_user(self):
if self.gender=='男':
print('%s%s先生,您好!'%(self.first_name,self.last_name))
else:
print('%s%s小姐,您好!'%(self.first_name,self.last_name))
user1=User('张','三','男')
user1.describe_user()
user1.greet_user()
user2=User('李','四','女')
user2.describe_user()
user2.greet_user()
**output**
姓:张 名:三 性别:男
张三先生,您好!
姓:李 名:四 性别:女
李四小姐,您好!
9-4 就餐人数 : 在为完成练习 9-1而编写的程序中, 添加一个名为number_served 的属性, 并将其默认值设置为0。 根据这个类创建一
个名为restaurant 的实例; 打印有多少人在这家餐馆就餐过, 然后修改这个值并再次打印它。添加一个名为set_number_served( ) 的方法,
它让你能够设置就餐人数。调用这个方法并向它传递一个值, 然后再次打印这个值。添加一个名为increment_number_served( ) 的方法,
它让你能够将就餐人数递增。调用这个方法并向它传递一个这样的值: 你认为这家餐馆每天可能接待的就餐人数。
class Restaurant(object):
'''添加restaurant_name 和cuisine_type两个属性'''
def __init__(self,restaurant_name,cuisine_type):
self.restaurant_name=restaurant_name
self.cuisine_type=cuisine_type
self.number_served =0
'''调用init中restaurant_name 和cuisine_type的属性'''
def __str__(self):
return self.restaurant_name,self.cuisine_type,self.number_served
'''建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,其中前者打印前述两项信息,
而后者打印一条消息,指出餐馆正在营业。'''
def describe_restaurant(self):
return self.restaurant_name,self.cuisine_type
def open_restaurant(self):
infornmatization=self.restaurant_name+' '+'营业时间为10:00.am—11:00.pm'
print(infornmatization)
def set_number_served(self,served):
self.number_served=served
print('这个餐厅接待人数:%s'% self.number_served)
def increment_number_served(self,add_served):
self.number_served+=add_served
print('这家餐厅增加到%s人'% self.number_served)
restaurant=Restaurant('寿司店','日式料理')
restaurant.number_served=25
ret=restaurant.__str__()
restaurant.open_restaurant()
restaurant.set_number_served(20)
restaurant.increment_number_served(30)
print(ret)
**output**
寿司店 营业时间为10:00.am—11:00.pm
这个餐厅接待人数:20
这家餐厅增加到50人
('寿司店', '日式料理', 25)
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 的值, 确认它被正确地递增; 然后, 调用方法reset_login_attempts( ) ,
并再次打印属性login_attempts 的值, 确认它被重置为0。
class User(object):
'''给init方法添加first_name,last_name,gender'''
def __init__(self,first_name,last_name,gender):
self.first_name=first_name
self.last_name=last_name
self.gender=gender
self.login_attempts=2
'''编写一个名为increment_login_attempts( ) 的方法,
它将属性login_attempts 的值加1'''
def increment_login_attempts(self):
self.login_attempts+=1
print('您已经试了%s次'%self.login_attempts)
'''编写一个名为reset_login_attempts( ) 的方法,它将属性login_attempts 的值重置为0'''
def reset_login_attempts(self):
self.login_attempts=0
print('你的次数被归%s'%self.login_attempts)
'''打印客人信息摘要'''
def describe_user(self):
abstract='姓:'+self.first_name+' '+'名:'+self.last_name+' '+'性别:'+self.gender
print(abstract)
'''判断客人性别后,发出独特的问候'''
def greet_user(self):
if self.gender=='男':
print('%s%s先生,您好!'%(self.first_name,self.last_name))
else:
print('%s%s小姐,您好!'%(self.first_name,self.last_name))
user1=User('张','三','男')
user1.describe_user()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.reset_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.reset_login_attempts()
**output**
姓:张 名:三 性别:男
您已经试了3次
您已经试了4次
您已经试了5次
你的次数被归0
您已经试了1次
您已经试了2次
您已经试了3次
你的次数被归0