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

news2024/11/16 11:51:24
Python 千题持续更新中 ……
脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐

请添加图片描述

题目描述

题目描述

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

输入描述

输出描述

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

示例

示例 ①

输出:

153.94
40.00

代码讲解

下面是本题的代码:

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编程习题的思路讲解,适用于初学者:

  1. 定义 Shape 抽象基类

    • 使用 ABC 模块定义一个抽象基类 Shape,并声明一个抽象方法 area(),该方法在子类中实现。
    from abc import ABC, abstractmethod
    
    class Shape(ABC):
        @abstractmethod
        def area(self):
            pass
    
  2. 定义 Circle

    • 创建 Circle 类继承自 Shape,实现 area() 方法来计算圆的面积。
    import math
    
    class Circle(Shape):
        def __init__(self, radius):
            self.radius = radius
    
        def area(self):
            return math.pi * (self.radius ** 2)
    
  3. 定义 Rectangle

    • 创建 Rectangle 类继承自 Shape,实现 area() 方法来计算长方形的面积。
    class Rectangle(Shape):
        def __init__(self, length, width):
            self.length = length
            self.width = width
    
        def area(self):
            return self.length * self.width
    
  4. 创建实例并计算面积

    • 创建 CircleRectangle 类的实例,分别计算半径为 7 的圆的面积和长度为 10、宽度为 4 的长方形的面积。
    circle = Circle(7)
    rectangle = Rectangle(10, 4)
    
  5. 输出结果

    • 使用格式化字符串输出结果,保留两位小数。
    print(f"{circle.area():.2f}")
    print(f"{rectangle.area():.2f}")
    
  6. 运行程序

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

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

相关知识点

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

  1. 抽象基类

    • 使用 ABC 模块定义抽象基类,并声明抽象方法,确保子类实现这些方法。
    from abc import ABC, abstractmethod
    
  2. 继承和方法重写

    • 子类继承基类并实现具体的方法。
    class Circle(Shape):
        def area(self):
            return math.pi * (self.radius ** 2)
    
  3. 实例化和方法调用

    • 创建类的实例,并调用其方法计算并输出结果。
    circle = Circle(7)
    print(f"{circle.area():.2f}")
    
  4. 格式化输出

    • 使用格式化字符串输出浮点数,控制显示的小数位数。
    print(f"{circle.area():.2f}")
    

这个习题适合希望掌握面向对象编程基本概念的初学者,包括抽象类、继承和方法重写。希望这个模板对你有所帮助,如果有任何问题,随时提出!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2076391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原子操作与锁

1 原子性 1.1 CPU缓存 L1、L2:一级缓存、二级缓存,均为核心独有 L3:三级缓存,多个核心共用 多级缓存,弥补CPU与内存速度不匹配的问题 1.2 cache line 缓存进行管理的一个最小存储单元,缓存块 1.3 CPU读…

【xilinx】解决 I/O 时钟布局器错误:CLOCK_DEDICATED_ROUTE 异常示例

问题描述 设备&#xff1a; xcvm1102-sfva784-2HP-iS问题&#xff1a;尽管使用 GCIO 引脚作为时钟&#xff0c;但布局器返回 I/O 时钟错误 错误&#xff1a; <span style"background-color:#f3f3f3"><span style"color:#333333"><code&g…

《机器学习》 贝叶斯分类器 原理、参数讲解及代码演示

目录 一、贝叶斯算法 1、简介 2、贝叶斯算法具有以下特点&#xff1a; 二、贝叶斯原理 1、正向概率&#xff08;先验概率&#xff09; 例如&#xff1a; 2、逆向概率&#xff08;后验概率&#xff09; 3、公式 1&#xff09;实例1 2&#xff09;实例2 • 目标&#x…

基于初始运行数据的电池循环寿命预测

这个例子展示了如何使用线性回归(一种监督机器学习算法)预测快速充电锂离子电池的剩余循环寿命。使用基于物理的建模方法预测锂离子电池的循环寿命是非常复杂的&#xff0c;因为不同的操作条件和显著的设备可变性&#xff0c;即使是来自同一制造商的电池。对于这种情况&#xf…

FPGA上板项目(四)——FIFO测试

目录 实验内容实验原理FIFO IP 核时序绘制HDL 代码仿真综合实现上板测试 实验内容 理解 FIFO 原理调用 FIFO IP 核完成数据读写 实验原理 FIFO&#xff1a;First In First Out&#xff0c;先入先出式数据缓冲器&#xff0c;用来实现数据先入先出的读写方式。可分类为同步 FI…

论文翻译 | 通过逻辑增强大型语言模型中的零样本思维链推理

摘要 大型语言模型的最新进展已经展示了它们在各个领域的卓越泛化性。然而&#xff0c;他们的推理能力仍有很大的提高空间&#xff0c;特别是在面对需要多步骤推理的场景时。虽然大型语言模型拥有广泛的知识&#xff0c;但它们的推理往往不能有效地利用这些知识来建立连贯的思维…

机器学习/数据分析--通俗语言带你入门决策树(结合分类和回归案例)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 机器学习是深度学习和数据分析的基础&#xff0c;接下来将更新常见的机器学习算法注意&#xff1a;在打数学建模比赛中&#xff0c;机器学习用的也很多&a…

[LeetCode]根据决策树设计代码解决dfs

目录 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 决策树&#xff1a;根据题意可以知道&#xff0c;全排列需要找到数组内元素不重复的所有排列方式&#xff0c…

Java面向接口编程——开发打印机

题目&#xff1a; 墨盒&#xff1a;彩色、黑白 纸张类型&#xff1a;A4、B5 墨盒和纸张都不是打印机厂商提供的 打印机厂商要兼容市场上的墨盒、纸张 墨盒接口&#xff1a; public interface InkBox {String colorInkBox(); // 墨盒颜色} 纸张接口&#xff1a; public i…

Centos 添加双网卡 (生产环境配置记录)

1、在虚拟机中添加网卡2 [rootntpserver network-scripts]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo …

前端(Vue)tagsView(子标签页视图切换) 原理及通用解决方案

文章目录 tagsView 方案总结tagsView 原理分析创建 tags 数据源生成 tagsViewtagsView 国际化处理contextMenu 展示处理contextMenu 事件处理处理 contextMenu 的关闭行为处理基于路由的动态过渡 tagsView 方案总结 整个 tagsView 整体来看就是三块大的内容&#xff1a; tags…

【SAM下游任务微调】TS-SAM: Fine-Tuning Segment-Anything Model for Downstream Tasks

TS-SAM: Fine-Tuning Segment-Anything Model for Downstream Tasks 论文链接&#xff1a;https://arxiv.org/pdf/2408.01835 代码链接&#xff1a;https://github.com/maoyangou147/TS-SAM 一、摘要 基于适配器的微调方法已经被研究用于改进SAM在下游任务上的性能。然而&am…

【2024】Datawhale X 李宏毅苹果书 AI夏令营 Task1

本文是关于李宏毅苹果书“第1章 机器学习基础”学习内容的记录。 1、术语解释 术语解释机器学习&#xff08;Machine Learning, ML&#xff09;机器学习是一种人工智能&#xff08;AI&#xff09;技术&#xff0c;它使计算机能够从数据中学习并做出决策或预测&#xff0c;而无…

【python计算机视觉编程——3.图像到图像的映射】

python计算机视觉编程——3.图像到图像的映射 3.图像到图像的映射3.1 单应性变换3.1.1 直接线性变换算法&#xff08;DLT&#xff09;3.1.2 仿射变换 3.2 图像扭曲3.2.1 图像中的图像3.2.2 分段仿射扭曲3.2.3 图像配准 3.3 创建全景图3.3.1 RANSAC3.3.2 稳健的单应性矩阵估计3.…

【二叉树】LC405-删除二叉搜索树的节点

文章目录 1 删除二叉树的节点思路其他代码参考 1 删除二叉树的节点 https://leetcode.cn/problems/delete-node-in-a-bst/description/ 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。…

探索全球设计灵感:六大海外设计平台

海外设计网站对于设计师而言&#xff0c;不仅是灵感的源泉&#xff0c;更是专业成长的加速器。这些平台聚集了全球创意人士&#xff0c;提供了一个分享和发现最新设计趋势的环境。设计师可以通过这些网站学习行业内的创新技术&#xff0c;参与设计挑战&#xff0c;提升个人设计…

End-to-End视觉里程计新突破:从运动模糊图像中精确估计相机姿态

更多优质内容&#xff0c;请关注公众号&#xff1a;智驾机器人技术前线 1.论文信息 论文标题&#xff1a;MBRVO: A Blur Robust Visual Odometry Based on Motion Blurred Artifact Prior 作者&#xff1a;Jialu Zhang, Jituo Li*, Jiaqi Li, Yue Sun, Xinqi Liu, Zhi Zheng,…

饮水机复杂交互功能联网调试

饮水机复杂交互功能联网调试 引言 饮水机我们从最开始的放水和加热, 逐渐拓展到保温功能, 童锁功能, 红外检测功能, 对于这些复杂的交互功能, 我们如果通过按键进行调试, 会极大的增加我们的开发时间和成本, 如果我们频繁的进行烧录, 则如果涉及到一些中间变量, 则无法进行调试…

帆软BI怎么制作不等宽柱状图

帆软BI怎么制作不等宽柱状图 文章目录 帆软BI怎么制作不等宽柱状图不等宽柱状图起源一、怎么做不等宽柱状图准备二、操作步骤1.展示效果2.操作步骤-3.操作步骤 -图形属性4.操作步骤 -组件样式5.操作步骤 -横轴和纵轴6.完成7.不等宽柱状图与传统等宽柱状图对比 总结 不等宽柱状图…

【深度学习】嘿马深度学习笔记第5篇:神经网络与tf.keras,学习目标【附代码文档】

本教程的知识点为&#xff1a;深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …