首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python 千题 —— 基础篇】面积计算(多种图形面积计算)

【Python 千题 —— 基础篇】面积计算(多种图形面积计算)

作者头像
繁依Fanyi
发布2024-09-05 13:47:13
发布2024-09-05 13:47:13
21500
代码可运行
举报
运行总次数:0
代码可运行

Python 千题持续更新中 ……

脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐

题目描述

题目描述

编写一个面向对象的程序,定义一个基类 Shape 和两个派生类 CircleRectangle,用来计算不同图形的面积。基类 Shape 具有一个抽象方法 area(),子类 CircleRectangle 实现具体的面积计算方法。请根据以下要求实现这些类,并计算半径为 7 的圆和长度为 10、宽度为 4 的长方形的面积。

输入描述

输出描述

输出圆的面积和长方形的面积,每个结果保留两位小数。

示例
示例 ①

输出:

代码语言:javascript
代码运行次数:0
运行
复制
153.94
40.00

代码讲解

下面是本题的代码:

代码语言:javascript
代码运行次数:0
运行
复制
from abc import ABC, abstractmethod
import math

# 描述: 定义一个基类 Shape 和两个派生类 Circle 和 Rectangle,用来计算不同图形的面积。
# 输入: 无
# 输出: 输出圆的面积和长方形的面积,每个结果保留两位小数。

# 定义 Shape 抽象基类
class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

# 定义 Circle 类
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius
    
    def area(self):
        # 计算圆的面积
        return math.pi * (self.radius ** 2)

# 定义 Rectangle 类
class Rectangle(Shape):
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        # 计算长方形的面积
        return self.length * self.width

# 创建 Circle 和 Rectangle 实例
circle = Circle(7)
rectangle = Rectangle(10, 4)

# 计算并输出圆的面积和长方形的面积,每个结果保留两位小数
print(f"{circle.area():.2f}")
print(f"{rectangle.area():.2f}")

思路讲解

下面是这个Python编程习题的思路讲解,适用于初学者:

定义 Shape 抽象基类

  • 使用 ABC 模块定义一个抽象基类 Shape,并声明一个抽象方法 area(),该方法在子类中实现。
代码语言:javascript
代码运行次数:0
运行
复制
from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

定义 Circle

  • 创建 Circle 类继承自 Shape,实现 area() 方法来计算圆的面积。
代码语言:javascript
代码运行次数:0
运行
复制
import math

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return math.pi * (self.radius ** 2)

定义 Rectangle

  • 创建 Rectangle 类继承自 Shape,实现 area() 方法来计算长方形的面积。
代码语言:javascript
代码运行次数:0
运行
复制
class Rectangle(Shape):
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width

创建实例并计算面积

  • 创建 CircleRectangle 类的实例,分别计算半径为 7 的圆的面积和长度为 10、宽度为 4 的长方形的面积。
代码语言:javascript
代码运行次数:0
运行
复制
circle = Circle(7)
rectangle = Rectangle(10, 4)

输出结果

  • 使用格式化字符串输出结果,保留两位小数。
代码语言:javascript
代码运行次数:0
运行
复制
print(f"{circle.area():.2f}")
print(f"{rectangle.area():.2f}")

运行程序

  • 保存代码并运行程序,程序将输出计算结果。

这个习题展示了如何使用面向对象编程中的抽象类和继承来计算不同图形的面积,适合希望深入理解OOP概念的学习者。

相关知识点

这个Python编程习题涉及了以下主要知识点:

抽象基类

  • 使用 ABC 模块定义抽象基类,并声明抽象方法,确保子类实现这些方法。
代码语言:javascript
代码运行次数:0
运行
复制
from abc import ABC, abstractmethod

继承和方法重写

  • 子类继承基类并实现具体的方法。
代码语言:javascript
代码运行次数:0
运行
复制
class Circle(Shape):
    def area(self):
        return math.pi * (self.radius ** 2)

实例化和方法调用

  • 创建类的实例,并调用其方法计算并输出结果。
代码语言:javascript
代码运行次数:0
运行
复制
circle = Circle(7)
print(f"{circle.area():.2f}")

格式化输出

  • 使用格式化字符串输出浮点数,控制显示的小数位数。
代码语言:javascript
代码运行次数:0
运行
复制
print(f"{circle.area():.2f}")

这个习题适合希望掌握面向对象编程基本概念的初学者,包括抽象类、继承和方法重写。

作者 : 繁依Fanyi

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
    • 题目描述
    • 输入描述
    • 输出描述
    • 示例
      • 示例 ①
  • 代码讲解
  • 思路讲解
  • 相关知识点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档