【Python】2021.12.10《Python编程从入门到实践》例题习题学习记录

【Python】2021.12.10《Python编程从入门到实践》例题习题学习记录,第1张

【Python】2021.12.10《Python编程从入门到实践》例题习题学习记录
"""《Python编程从入门到实践》"""
"""2021.12.20"""
"""
第九章 类 
    9.1创建和使用类
    9.2使用类和实例
"""


# 教材9.1.1代码,创建Dog类
class Dog():
    """一次模拟小狗的简单尝试,创建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):
        """模拟小狗被命令时打滚"""
        print(self.name.title() + " rolled over!")


# 教材9.1.2代码,根据类创建实例
def dog_study():
    # 根据Dog类创建实例
    my_dog = Dog("white", 6)
    print("My dog's name is " + my_dog.name.title() + ".")
    print("my dog is " + str(my_dog.age) + " years old.")
    my_dog.sit()
    my_dog.roll_over()

    your_dog = Dog("black", 5)
    print("nYour dog's name is " + your_dog.name.title() + ".")
    print("Your dog is " + str(your_dog.age) + " years old.")
    your_dog.sit()
    your_dog.roll_over()


# 9.1 习题9-1 9-4
class Restaurants():
    """创建restaurant类"""

    def __init__(self, restaurant_name, cuisine_type):
        # 习题9-1
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        # 习题9-4
        self.number_served = 0

    # 习题9-1
    def describe_restaurant(self):
        print("The restaurant's name is " + self.restaurant_name.title())
        print("The restaurant's cuisine type is " + self.cuisine_type.title() + "n")

    # 习题9-1
    def open_restaurant(self):
        print("The restaurant is opening now." + "n")

    # 习题9-4
    def set_number_served(self, number):
        self.number_served = number

    # 习题9-4
    def increment_number_served(self, add_numbers):
        self.number_served += add_numbers


def restaurant_study():
    # 习题9-1
    restaurant = Restaurants("restaurant", "little")
    print(restaurant.restaurant_name)
    print(restaurant.cuisine_type + "n")
    restaurant.describe_restaurant()
    restaurant.open_restaurant()
    # 习题9-2
    restaurant1 = Restaurants("restaurant1", "little")
    restaurant2 = Restaurants("restaurant2", "middle")
    restaurant3 = Restaurants("restaurant3", "big")
    restaurant1.describe_restaurant()
    restaurant2.describe_restaurant()
    restaurant3.describe_restaurant()
    # 习题9-4
    restaurant = Restaurants('restaurant', 'little')
    print('There are ' + str(restaurant.number_served) + " people served")
    restaurant.number_served = 100
    print('There are ' + str(restaurant.number_served) + " people served")
    restaurant.set_number_served(500)
    print('There are ' + str(restaurant.number_served) + " people served")
    restaurant.increment_number_served(500)
    print('There are ' + str(restaurant.number_served) + " people served")


# 习题9-3  9-5
class Users():
    """创建user类"""

    # 习题9-3
    def __init__(self, first_name, last_name, gender, age):
        self.first_name = first_name
        self.last_name = last_name
        self.gender = gender
        self.age = age
        # 习题9-5
        self.login_attempts = 0

    # 习题9-3
    def describe_user(self):
        print("The user's name is " + self.first_name + " " + self.last_name)
        print("The user's age is " + str(self.age))
        print("The user's gender is " + self.gender)

    # 习题9-3
    def greet_user(self):
        print("Hello, " + self.first_name + " " + self.last_name)

    # 习题9-5
    def increment_login_attempts(self):
        self.login_attempts += 1

    # 习题9-5
    def reset_login_attempts(self):
        self.login_attempts = 0


def user_study():
    # 习题9-3
    user1 = Users("Qingcai", "Chen", "man", 24)
    user2 = Users("Xiao", "Wang", "man", 23)
    user3 = Users("Jin", "Xuan", "woman", 24)
    user1.describe_user()
    user1.greet_user()
    print("n")
    user2.describe_user()
    user2.greet_user()
    print("n")
    user3.describe_user()
    user3.greet_user()
    # 习题9-4
    user4 = Users('Wenqiao', 'Li', 'man', 25)
    user4.increment_login_attempts()
    print(user4.login_attempts)
    user4.increment_login_attempts()
    print(user4.login_attempts)
    user4.increment_login_attempts()
    print(user4.login_attempts)
    user4.reset_login_attempts()
    print(user4.login_attempts)


# 教材9.2教程代码
class Cars():
    """创建cars类"""

    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_readimg = 0

    def get_descriptive_name(self):
        long_name = str(self.year) + " " + self.make + " " + self.model
        return long_name.title()

    def read_odometer(self):
        print("This car has " + str(self.odometer_readimg) + " miles on it.")

    def update_odometer(self, mileage):
        """
        将里程表读数设置为指定的值
        禁止将里程表往回调
        """
        if mileage >= self.odometer_readimg:
            self.odometer_readimg = mileage
        else:
            print("Your can't roll back an odometer!")

    def increment_odometer(self, miles):
        self.odometer_readimg += miles


def car_study():
    my_new_car = Cars("audi", "a4", 2016)
    print(my_new_car.get_descriptive_name())
    my_new_car.read_odometer()
    my_new_car.odometer_readimg = 10  # 直接修改属性
    print(my_new_car.get_descriptive_name())
    my_new_car.read_odometer()
    my_new_car.update_odometer(50)  # 使用方法修改属性
    my_new_car.read_odometer()
    print('n')
    my_used_car = Cars("subaru", 'outback', 2013)
    print(my_used_car.get_descriptive_name())
    my_used_car.update_odometer(23500)
    my_used_car.read_odometer()
    my_used_car.increment_odometer(100)
    my_used_car.read_odometer()


# 使用哪一部分去掉前面的#即可
if __name__ == "__main__":
    dog_study()
    # restaurant_study()
    # user_study()
    # car_study()

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存