类的练习(二)

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值