python-4-用“类”创建餐厅的类和实例2

学习内容:复习+重做第一次练习+练习

练习来源:《python编程:从入门到实践》第二版

练习1

#练习9-1餐馆
'''创建一个名为Restaurant的类,
为其方法__init__()设置属性restaurant_name和cuisine_type。
创建一个名为describe_restaurant()的方法和一个名为open_restaurant()的方法,
前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。
根据这个类创建一个名为restaurant的实例,
分别打印其两个属性,再调用前述两个方法。'''

我自己的代码两次对比

先看打印结果

(左第一次,右第二次)

第一次练习0518
class Restaurant:
   def __init__(self,restaurant_name,cuisine_type):
      self.restaurant_name = restaurant_name
      self.cuisine_type =cuisine_type

   def describe_restaurant(self):
      print (f"{self.restaurant_name},{self.cuisine_type}")

   def open_restaurant(self):
      print (f"The {self.restaurant_name} is open.")

restaurant = Restaurant('张亮','麻辣烫')

print (f"{restaurant.restaurant_name}")
print (f"{restaurant.cuisine_type}")

restaurant.describe_restaurant()
restaurant.open_restaurant()
第二次代码练习0520
print('这里是练习9-1的答案↓')

class Restaurant:
    def __init__ (self,restaurant_name,cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        
    def describe_restaurant(self):
        print(f"餐馆名,{self.restaurant_name}")
        print(f"餐馆类型,{self.cuisine_type}\n")
        
        
    def open_restaurant(self):
        print(f"{self.restaurant_name}正在营业中~\n")

restaurant1 = Restaurant('张亮','麻辣烫')
#这里会忘记加上Restaurant,忘记与类关联
#今天练习的疑问是这个逗号,什么时候会被打印出来,什么时候不会!

print(restaurant1.restaurant_name)
print(restaurant1.cuisine_type)

restaurant1.describe_restaurant()
restaurant1.open_restaurant()

小结:
  1. 两次代码,核心代码是一致的,包括类的创建、定义访问属性、调用方法等
  2. \n和换行我愿称他们为“美的杀手锏”,换行对于代码及最后展示的美观度太重要了!
  3. 一个准则,4个空格代表标准缩进,不要用制表符tab替代4个空格
  4. 在访问属性中,简化了f""{}的使用

练习2

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

我的代码:
print('这里是练习9-2的答案↓')

restaurant2 = Restaurant('螺蛳粉','主食')
restaurant2.describe_restaurant()

restaurant3 = Restaurant('小碗菜','主食')
restaurant3.describe_restaurant()

restaurant4 = Restaurant('铁锅炖','火锅')
restaurant4.describe_restaurant()

#这里有个很烦的事情,就是打印出来全部堆在一起了,
#\n不能用在外面,只能放在print里面用

小结:
  1. 第一次打出来的时候结果都在一起,看着实在难受,加了\n之后才更美观
  2. 一定要注意好\n的位置,我感觉都是在打印该部分最后,或者下一部分之前
  3. \n不要写成/n 
  4. 属性部分可以尝试用:而不是逗号,目前属性里面的逗号是打印出来的,这个先暂时记录一下

练习3

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

我的代码
print('这里是练习9-3的答案↓')

class User:
    def __init__ (self,first_name,last_name,age,job):
        self.first_name = first_name
        self.last_name = last_name
        self.age = age
        self.job = job

    def describe_user(self):
        print(f"{self.first_name}{self.last_name}\t{self.age}岁\t{self.job}")

    def greet_user(self):
        print(f"hello,{self.first_name}{self.last_name},welcome!")

user1 = User('张','三','18','学生')
user1.describe_user()
user1.greet_user()

user2 = User('李','四','19','学生')
user2.describe_user()
user2.greet_user()

user3 = User('王','五','17','学生')
user3.describe_user()
user3.greet_user()

小结:
  1. 一定要做练习,练习越做越熟悉,当然也可能是短暂的记忆,经常复习也有用;
  2. /t的使用虽然美观,但要注意张三这样的名字中间就别加了~我之前就是错的;有点理解换行、缩进的重要性了
  3. 好像是f“”中出现逗号会被打印出来
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值