《Python编程:从入门到实践》第九章类笔记+课后练习(1)

创建类和使用类

  • 9.1.1创建Dog类
  • 9.1.2根据类创建实例
    • 2.调用方法
    • 3.创建多个实例
  • 9.1总结代码
  • 动手试一试
    • 9-1餐馆
    • 9-2三家餐馆
    • 9-3用户

9.1.1创建Dog类

#dog.py
class Dog():
    '''一次模拟小狗的简单尝试'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age
    def sit(self):
        '''模拟小狗被命令时蹲下'''
        print(self.name.title()+" is now sitting.")
    def roll_over(self):#title将首字母改为大写
        '''模拟小狗被命令时打滚'''
        print(self.name.title()+" rolled over!")
----------------------------------------------------------------
类 狗():
    定义 初始化(自己,名称,年龄):
        自己.名称 = 名称
        自己.年龄 = 年龄
    定义 蹲下(自己):
        打印(自己.名称.标题()+' is now sitting.')
    定义 打滚(自己):
        打印(自己.名称.标题()+' rolled over!')
'''
is now sitting.
现在蹲下了
rolled over!
翻身了
'''

9.1.2根据类创建实例

#9.1.2根据类创建实例
class Dog():
    '''一次模拟小狗的简单尝试'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age
    def sit(self):
        '''模拟小狗被命令时蹲下'''
        print(self.name.title()+" is now sitting.")
    def roll_over(self):#title将首字母改为大写
        '''模拟小狗被命令时打滚'''
        print(self.name.title()+" rolled over!")

my_dog = Dog('willie',6)
print('My dog`s name is '+my_dog.name.title()+".")
print('My dog is '+str(my_dog.age)+" years old.")
---------------------------------------------------------------
类 狗():
    定义 初始化(自己,名称,年龄):
        自己.名称 = 名称
        自己.年龄 = 年龄
    定义 蹲下(自己):
        打印(自己.名称.标题()+' 现在蹲下了。')
    定义 打滚(自己):
        打印(自己.名称.标题()+' 打滚了!')

我的狗 =('威廉',6)
打印('我的狗的名称是'+我的狗.名称.标题()+'.')
打印('我的狗是'+(我的狗.年龄)+'岁')

2.调用方法

class Dog():
    '''一次模拟小狗的简单尝试'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age
    def sit(self):
        '''模拟小狗被命令时蹲下'''
        print(self.name.title()+" is now sitting.")
    def roll_over(self):#title将首字母改为大写
        '''模拟小狗被命令时打滚'''
        print(self.name.title()+" rolled over!")

my_dog = Dog('willie',6)
my_dog.sit()
my_dog.roll_over()
-------------------------------------------------
类 狗():
    定义 初始化(自己,名称,年龄):
        自己.名称 = 名称
        自己.年龄 = 年龄
    定义 蹲下(自己):
        打印(自己.名称.标题()+' 现在蹲下了。')
    定义 打滚(自己):
        打印(自己.名称.标题()+' 打滚了!')

我的狗 =('威廉',6)
我的狗.蹲下()
我的狗.打滚()

我犹豫再三我觉得还是简写吧,之后最终的代码会放在后边,我打的代码我没试过,如果有错误,欢迎评论区留言。

3.创建多个实例

class Dog():
    --snip--

my_dog = Dog('willie',6)
your_dog = Dog('lucy',3)
print('My dog`s name is '+my_dog.name.title()+".")
print('My dog is '+str(my_dog.age)+" years old.")
my_dog.sit()
print('\nYour dog`s name is '+your_dog.name.title()+".")
print('Your dog is '+str(your_dog.age)+" years old.")
your_dog.sit()
------------------------------------------
类 狗():
    --剪断--

我的狗 =('威廉',6)
你的狗 =('露西',3)
打印('我的狗的名称是'+我的狗.名称.标题()+'.')
打印('我的狗是'+(我的狗.年龄)+'岁')
我的狗.蹲下()
打印('你的狗的名称是'+你的狗.名称.标题()+'.')
打印('你的狗是'+(你的狗.年龄)+'岁')
你的狗.蹲下()
打印('你的狗的名称是'+我的狗.名称.标题()+'.')

9.1总结代码

后面还有我的理解

class Dog():
    '''一次模拟小狗的简单尝试'''
    def __init__(self,name,age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age
    def sit(self):
        '''模拟小狗被命令时蹲下'''
        print(self.name.title()+" is now sitting.")
    def roll_over(self):#title,将首字母改为大写
        '''模拟小狗被命令时打滚'''
        print(self.name.title()+" rolled over!")

my_dog = Dog('willie',6)
your_dog = Dog('lucy',3)
print('My dog`s name is '+my_dog.name.title()+".")
print('My dog is '+str(my_dog.age)+" years old.")
my_dog.sit()
print('\nYour dog`s name is '+your_dog.name.title()+".")
print('Your dog is '+str(your_dog.age)+" years old.")
your_dog.sit()
'将my_dog的属性age的值6转换为字符串'
'''
类中的函数称为方法.
__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,
Python都会自动运行它。
在这个方法的名称中,开头和末尾各有两个下划线,
这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。

我们将方法__init__()定义成了包含三个形参:self、name和age。

在这个方法的定义中,形参self必不可少,
还必须位于其他形参的前面。
'''
---------------------------------------------------------
类 狗():
    '''一次模拟小狗的简单尝试'''
    定义 初始化(自己,名称,年龄):
        '''初始化属性名称和年龄'''
        自己.名称 = 名称
        自己.年龄 = 年龄
    定义 蹲下(自己):
        '''模拟小狗被命令时蹲下'''
        打印(自己.名称.标题()+" 现在蹲下了")
    定义 打滚(自己):#标题,将首字母改为大写
        '''模拟小狗被命令时打滚'''
        打印(自己.名称.标题()+" 打滚了!")

我的狗 =('威廉',6)
你的狗 =('露西',3)
打印('我的狗的名称是'+我的狗.名称.标题()+'.')
打印('我的狗是'+(我的狗.年龄)+'岁')
我的狗.蹲下()
打印('你的狗的名称是'+你的狗.名称.标题()+'.')
打印('你的狗是'+(你的狗.年龄)+'岁')
你的狗.蹲下()

动手试一试

9-1餐馆

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

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

class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        
    def describe_restaurant(self):
        print('My restaurant`s name is '\
      +self.restaurant_name.title())
        print('My restaurant makes '+self.cuisine_type)
        
    def open_restaurant(self):
        print("The "+self.restaurant_name.title()\
              +" restaurant is open.")
        
my_restaurant = Restaurant('yummy','Western-style food')
print('The food in the '+my_restaurant.restaurant_name.title()\
              +' restaurant is very delicious.')
print('There are appetizers, soups, side dishes and \
main courses in  '+my_restaurant.cuisine_type)
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()
----------------------------------------------------------
类 餐馆():
    定义 初始化(自己,餐馆名称,菜肴类型):
        自己.餐馆名称 = 餐馆名称
        自己.菜肴类型 = 菜肴类型
        
    定义 描述餐馆(自己):
        打印('我的餐馆的名字是 '\
           +自己.餐馆名称.标题())
        打印('我的餐馆做'+自己.菜肴类型)
        
    定义 开张餐馆(自己):
        打印('这家'+自己.餐馆名称.标题()'餐馆开张了。')
        
我的餐馆 = 餐馆('好吃','西餐')
打印('这食物在'+我的餐馆.餐馆名称.标题()\
   +'餐馆是非常美味的。')
打印('有开胃品,汤,副菜和主菜在'+我的餐馆.菜肴类型)
我的餐馆.描述餐馆()
我的餐馆.开张餐馆()

9-2三家餐馆

:根据你为完成练习9-1而编写的类创建三个实例,并对每个实例调用方法describe_restaurant()。

这部分我为了省力气代码打的可能有点眼花缭乱。

class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        
    def describe_restaurant(self):
        print('My restaurant`s name is '\
      +self.restaurant_name.title())
        print('My restaurant makes '+self.cuisine_type.title())
        
    def open_restaurant(self):
        print("The "+self.restaurant_name.title()\
              +" restaurant is open.")
        
my_restaurant = Restaurant('yummy','Western-style food')
your_restaurant = Restaurant('eat well','French cuisine')
her_restaurant = Restaurant('are you hungry?','english cuisine')
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()
your_restaurant.describe_restaurant()
your_restaurant.open_restaurant()
her_restaurant.describe_restaurant()
her_restaurant.open_restaurant()
----------------------------------------------------------
类 餐馆():
    定义 初始化(自己,餐馆名称,菜肴类型):
        自己.餐馆名称 = 餐馆名称
        自己.菜肴类型 = 菜肴类型
        
    定义 描述餐馆(自己):
        打印('我的餐馆的名字是 '\
           +自己.餐馆名称.标题())
        打印('我的餐馆做'+自己.菜肴类型.标题())
        
    定义 开张餐馆(自己):
        打印('这家'+自己.餐馆名称.标题()'餐馆开张了。')
        
我的餐馆 = 餐馆('好吃','西餐')
你的餐馆 = 餐馆('吃好','法式菜肴')
她的餐馆 = 餐馆('你饿了吗?','英式菜肴')
我的餐馆.描述餐馆()
我的餐馆.开张餐馆()
你的餐馆.描述餐馆()
你的餐馆.开张餐馆()
她的餐馆.描述餐馆()
她的餐馆.开张餐馆()

9-3用户

创建一个名为User的类,其中包含属性first_name和last_name,还有用户简介通常会存储的其他几个属性。在类User中定义一个名为describe_user()的方法,它打印用户信息摘要;再定义一个名为greet_user()的方法,它向用户发出个性化的问候。
创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。

class User():
    def __init__(user,first_name,last_name,gender,age,birthday):
        user.first_name= first_name
        user.last_name = last_name
        user.gender = gender
        user.age = age
        user.birthday = birthday
        
    def describe_user(user):
        print("First name: "+user.first_name.title())
        print("Last name: "+user.last_name.title())
        print("Gender: "+user.gender)
        print("Age:"+str(user.age))
        print("Your birthday: "+str(user.birthday))
        
    def greet_user(user):
        print("Hello "+user.first_name.title(),'Welcome to the world \
of Python.')
user_profile = User('angel','devil','girl','16','9.2')
user_profile.greet_user()
user_profile.describe_user()
----------------------------------------------------------------
类 用户():
    定义 初始化(用户,名字,姓,性别,年龄,生日):
        用户.名字 = 名字
        用户.= 姓
        用户.性别 = 性别
        用户.年龄 = 年龄
        用户.生日 = 生日

    定义 描述用户(用户):
        打印('名字:'+用户.名字.标题())
        打印('姓:'+用户.名字.标题())
        打印('性别:'+用户.性别)
        打印('年龄:'+(用户.年龄))
        打印('你的生日:'+(用户.生日))

    定义 欢迎用户(用户):
        打印('你好'+用户.名字.标题(),'欢迎来到python世界。')

用户档案 = 用户('天使','魔鬼','女孩',16,9.2)
用户档案.欢迎用户()
用户档案.描述用户()

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

class User():
    def __init__(user,first_name,last_name,gender,age,birthday):
        user.first_name= first_name
        user.last_name = last_name
        user.gender = gender
        user.age = age
        user.birthday = birthday
        
    def describe_user(user):
        print("First name: "+user.first_name.title())
        print("Last name: "+user.last_name.title())
        print("Gender: "+user.gender)
        print("Age:"+str(user.age))
        print("Your birthday: "+str(user.birthday))
        
    def greet_user(user):
        print("Hello "+user.first_name.title(),'Welcome to the world \
of Python.')
user_profile = User('angel','devil','girl',16,9.2)
user_profile.greet_user()
user_profile.describe_user()
user_profile_two = User('yelu','salen','boy',18,9.3)
user_profile_two.greet_user()
user_profile_two.describe_user()
user_profile_three = User('lisha','mengna','girl',20,9.4)
user_profile_three.greet_user()
user_profile_three.describe_user()
----------------------------------------------------------------
类 用户():
    定义 初始化(用户,名字,姓,性别,年龄,生日):
        用户.名字 = 名字
        用户.= 姓
        用户.性别 = 性别
        用户.年龄 = 年龄
        用户.生日 = 生日

    定义 描述用户(用户):
        打印('名字:'+用户.名字.标题())
        打印('姓:'+用户.名字.标题())
        打印('性别:'+用户.性别)
        打印('年龄:'+(用户.年龄))
        打印('你的生日:'+(用户.生日))

    定义 欢迎用户(用户):
        打印('你好'+用户.名字.标题(),'欢迎来到python世界。')

用户档案 = 用户('天使','魔鬼','女孩',16,9.2)
用户档案.欢迎用户()
用户档案.描述用户()
用户档案2 = 用户('耶鲁','撒冷','男孩',18,9.3)
用户档案2.欢迎用户()
用户档案2.描述用户()
用户档案3 = 用户('丽莎','蒙娜','女孩',20,9.4)
用户档案3.欢迎用户()
用户档案3.描述用户()

文章里的内容如果有什么错误,可以在评论区留言。

你可能感兴趣的:(我啃的python书,python基础入门知识,python,类)