While循环处理列表元素
1.
题目描述及代码:
运行结果:
2.
题目描述及代码:
运行结果:
Python中的类
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 self.number_served = 0 def describe_restaurant(self): """打印前述两项信息""" print("The name of the restaurant is : " + self.restaurant_name.title()) print("The cuisine type of the restaurant is : " + self.cuisine_type.title()) print("There are " + str(self.number_served) + " people in the restaurant.") def set_number_served(self, number): self.number_served = number restaurant = Restaurant('LanHaiYuHua', 'Five Star') restaurant.describe_restaurant() restaurant.set_number_served(30) print("\n") restaurant.describe_restaurant()运行结果:
2. 类的继承
创建子类时,父类必须包含在当前文件中,且位于子类前面,父类也被称为超类
定义子类时,必须在括号内指定父类的名称
案例1描述:
冰淇淋小店是一种特殊的餐馆。 编写一个名为IceCreamStand 的类, 让它继承你为完成练习9-1或练习9-4而编写的Restaurant 类。 这两个版本的Restaurant 类都可以, 挑选你更喜欢的那个即可。 添加一个名为flavors 的属性, 用于存储一个由各种口味的冰淇淋组成的列表。 编写一个显示这些冰淇淋的方法。 创建一个IceCreamStand 实例, 并调用这个方法。
源代码:
class IceCreamStand(Restaurant): def __init__(self, restaurant_name, cuisine_type): super().__init__(restaurant_name, cuisine_type) self.flavors = ['Apple', 'Banana', 'Pear'] def get_flavor(self): """输出各种冰淇淋""" print("The icecreams in this IceCreamStand are as follows:") for flavor in self.flavors: print(flavor) icecreamstand = IceCreamStand("IceCream_Stand", "111") icecreamstand.get_flavor()运行结果:
案例2描述:
管理员是一种特殊的用户。 编写一个名为Admin 的类, 让它继承你为完成练习9-3或练习9-5而编写的User 类。 添加一个名为privileges 的属性, 用于存储一个由字符串(如"can add post" 、 "can delete post" 、 "can ban user" 等) 组成的列表。 编写一个名为show_privileges() 的方法, 它显示管理员的权限。 创建一个Admin 实例, 并调用这个方法。
代码:
class User(): def __init__(self, user_id, user_name): self.user_id = user_id self.user_name = user_name self.user_age = 20 def get_user_info(self): """获取用户信息""" print("The info of user is as follow: ") print("ID:" + self.user_id.title()) print("Name:" + self.user_name.title()) class Admin(User): def __init__(self, user_id, user_name): super().__init__(user_id, user_name) self.privileges = ['can add post', 'can delete post', 'can ban user'] def show_privileges(self): """显示管理员的权限""" print("The privileges of Admin are as follow: ") for privilege in self.privileges: print(privilege) admin = Admin("961087010", "Zhao") admin.get_user_info() admin.show_privileges()运行结果:
将案例用作类的属性
案例描述:与上一案例一致
代码:
class Privileges(): def __init__(self): self.privileges = ['can add post', 'can delete post', 'can ban user'] class User(): def __init__(self, user_id, user_name): self.user_id = user_id self.user_name = user_name self.user_age = 20 def get_user_info(self): """获取用户信息""" print("The info of user is as follow: ") print("ID:" + self.user_id.title()) print("Name:" + self.user_name.title()) class Admin(User): def __init__(self, user_id, user_name): super().__init__(user_id, user_name) self.privileges = Privileges() def show_privileges(self): """显示管理员的权限""" print("The privileges of Admin are as follow: ") for privilege in self.privileges.privileges: print(privilege) admin = Admin("961087010", "Zhao") admin.get_user_info() admin.show_privileges()