学习内容:复习+重做第一次练习+练习
练习来源:《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()
小结:
- 两次代码,核心代码是一致的,包括类的创建、定义访问属性、调用方法等
- \n和换行我愿称他们为“美的杀手锏”,换行对于代码及最后展示的美观度太重要了!
- 一个准则,4个空格代表标准缩进,不要用制表符tab替代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里面用
小结:
- 第一次打出来的时候结果都在一起,看着实在难受,加了\n之后才更美观
- 一定要注意好\n的位置,我感觉都是在打印该部分最后,或者下一部分之前
- \n不要写成/n
- 属性部分可以尝试用:而不是逗号,目前属性里面的逗号是打印出来的,这个先暂时记录一下
练习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()
小结:
- 一定要做练习,练习越做越熟悉,当然也可能是短暂的记忆,经常复习也有用;
- /t的使用虽然美观,但要注意张三这样的名字中间就别加了~我之前就是错的;有点理解换行、缩进的重要性了
- 好像是f“”中出现逗号会被打印出来