Python学习第三篇——while循环及类

    技术2023-10-25  105

    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()

     

    Processed: 0.017, SQL: 9