python课程作业——第9章 类

本章节详细探讨Python中的类,涵盖类的定义、属性、方法、继承、多态等核心概念,旨在帮助读者深入理解面向对象编程并提升实战能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第9章 类

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

# 9-2
class User():
    """用户"""

    def __init__(self, first_name, last_name):
        """初始化姓名"""
        self.first_name = first_name.title()
        self.last_name = last_name.title()

    def describe_user(self):
        """输出姓名"""
        print('This is ' + self.first_name + ' ' + self.last_name + '.')

    def greet_user(self):
        """问候"""
        print("Hello, " + self.first_name + '. Nice to meet you!')


user = User("Albert", "Ye")
user.describe_user()
user.greet_user()


# 9-5
class User():
    """用户"""

    def __init__(self, first_name, last_name):
        """初始化姓名"""
        self.first_name = first_name.title()
        self.last_name = last_name.title()
        self.login_attempts = 0

    def describe_user(self):
        """输出姓名"""
        print('This is ' + self.first_name + ' ' + self.last_name + '.')

    def greet_user(self):
        """问候"""
        print("Hello, " + self.first_name + '. Nice to meet you!')

    def increment_login_attempts(self):
        """增加登陆尝试次数"""
        self.login_attempts += 1

    def reset_login_attempts(self):
        """重置登陆尝试次数"""
        self.login_attempts = 0


user = User("Albert", "Ye")
user.increment_login_attempts()
print(user.login_attempts)
user.increment_login_attempts()
print(user.login_attempts)
user.increment_login_attempts()
print(user.login_attempts)
user.reset_login_attempts()
print(user.login_attempts)


# 9-7
class User():
    """用户"""

    def __init__(self, first_name, last_name):
        """初始化姓名"""
        self.first_name = first_name.title()
        self.last_name = last_name.title()
        self.login_attempts = 0

    def describe_user(self):
        """输出姓名"""
        print('This is ' + self.first_name + ' ' + self.last_name + '.')

    def greet_user(self):
        """问候"""
        print("Hello, " + self.first_name + '. Nice to meet you!')

    def increment_login_attempts(self):
        """增加登陆尝试次数"""
        self.login_attempts += 1

    def reset_login_attempts(self):
        """重置登陆尝试次数"""
        self.login_attempts = 0


class Admin(User):
    """管理员"""

    def __init__(self, first_name, last_name, privileges):
        """初始化管理员,权限为一个字符串list"""
        super().__init__(first_name, last_name)
        self.privileges = privileges

    def show_privileges(self):
        """输出权限"""
        print(self.privileges)


admin = Admin("Albert", "Ye",
              ["can add post", "can delete post", "can ban user"])
admin.show_privileges()


# 9-13
from collections import OrderedDict

dict = OrderedDict()

dict["def"] = "定义"
dict["int"] = "整数"
dict["class"] = "类"
for word, explanation in dict.items():
    print("word" + ' "' + word + '" means ' + explanation)

print()

dict["int"] = "整数"
for word, explanation in dict.items():
    print("word" + ' "' + word + '" means ' + explanation)
### Python初级第九作业内容 以下是关于Python初级教程中可能涉及的第九相关内容和练习题目。这些内容通常围绕面向对象编程(OOP)、设计与实现展开。 #### 题目一:定义一个简单的 创建一个名为`Dog`的,其中包含以下属性和方法: - 属性:`name` 和 `age` - 方法:`sit()` 打印一条消息表明狗正在坐下;`roll_over()` 打印一条消息表明狗正在打滚。 ```python class Dog: def __init__(self, name, age): self.name = name self.age = age def sit(self): print(f"{self.name} is now sitting.") def roll_over(self): print(f"{self.name} rolled over!") ``` 通过实例化这个并调用其方法来验证功能[^1]。 --- #### 题目二:餐厅管理 基于引用中的内容[^2],扩展`Restaurant`的功能: - 添加一个新的方法`update_cuisine(cuisine)`用于更新餐厅的菜系。 - 修改`increment_number_served(number)`方法,使其能够处理负数值的情况,并打印警告信息。 ```python 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(f"The restaurant&#39;s name is {self.restaurant_name}.") print(f"The cuisine type of it is {self.cuisine_type}.") def open_restaurant(self): print(f"The restaurant {self.restaurant_name} is opening.") def set_number_served(self, number): self.number_served = number print(f"The number of guests served is {self.number_served}.") def increment_number_served(self, number): if number < 0: print("Warning: Cannot decrement the number of served customers with negative values.") else: self.number_served += number print(f"The number of guests served is {self.number_served} now.") def update_cuisine(self, new_cuisine): self.cuisine_type = new_cuisine print(f"Cuisine updated to {new_cuisine}") ``` 测试以上功能以确保正常运行[^2]。 --- #### 题目三:骰子模拟器 根据引用的内容[^1],完成以下任务: - 定义一个`Die`,允许指定骰子的面数,默认为6。 - 编写一个方法`roll_die()`,每次调用时返回一个介于1到骰子面数之间的随机整数。 - 使用循环分别创建一个6面、10面和20面的骰子,并各掷10次。 ```python from random import randint class Die: def __init__(self, sides=6): self.sides = sides def roll_die(self): return randint(1, self.sides) def simulate_dice_rolls(): dice_sizes = [6, 10, 20] for size in dice_sizes: die = Die(size) rolls = [die.roll_die() for _ in range(10)] print(f"Rolling a {size}-sided die 10 times: {rolls}") simulate_dice_rolls() ``` 此代码实现了不同面数骰子的多次投掷操作[^1]。 --- #### 题目四:继承与多态 设计一个`Vehicle`以及两个派生`Car`和`Bicycle`: - 父应具有通用的方法如`start_engine()`和`stop_engine()`。 - 子需重载某些方法以适应特定行为。 ```python class Vehicle: def start_engine(self): print("Engine started.") def stop_engine(self): print("Engine stopped.") class Car(Vehicle): def honk_horn(self): print("Honking horn!") class Bicycle(Vehicle): def pedal(self): print("Pedaling forward!") car = Car() bicycle = Bicycle() car.start_engine() car.honk_horn() print("---") bicycle.pedal() bicycle.stop_engine() ``` 这段程序展示了如何利用继承简化代码结构的同时保持灵活性[^3]。 --- ### 总结 上述四个题目涵盖了Python基础课程中常见的主题——从基本的对象初始化到更复杂的继承关系建模。希望这能帮助理解面向对象的核心概念及其实际应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值