当前位置: 首页 > news >正文

打卡Day28

题目1:定义圆(Circle)类
要求:
1.包含属性:半径 radius。
2.包含方法:
●calculate_area():计算圆的面积(公式:πr²)。
●calculate_circumference():计算圆的周长(公式:2πr)。
3.初始化时需传入半径,默认值为 1。

import mathclass Circle:def __init__(self, radius=1):self.radius = radius # 外界的参数,需要通过self.xxx来复制给类自己的属性def calculate_area(self):return math.pi * (self.radius ** 2)def calculate_circumference(self):return 2 * math.pi * self.radius
# 测试
circle = Circle(5)
print("Area:", circle.calculate_area())
print("Circumference:", circle.calculate_circumference())

题目2:定义长方形(Rectangle)类
1.包含属性:长 length、宽 width。
2.包含方法:
●calculate_area():计算面积(公式:长×宽)。
●calculate_perimeter():计算周长(公式:2×(长+宽))。 is_square() 方法,判断是否为正方形(长 == 宽)。
3.初始化时需传入长和宽,默认值均为 1。

class Rectangle:def __init__(self, length=1, width=1):self.length = length # 外界的参数,需要通过self.xxx来复制给类自己的属性self.width = widthdef calculate_area(self):return self.length * self.widthdef calculate_circumference(self):return 2 * (self.length  + self.width)def is_square(self):return self.length == self.width
# 测试
rectangle = Rectangle(5,5)
print("Area:", rectangle.calculate_area())
print("Circumference:", rectangle.calculate_circumference())

题目3:图形工厂
创建一个工厂函数 create_shape(shape_type, *args),根据类型创建不同图形对象:图形工厂(函数或类)
shape_type=“circle”:创建圆(参数:半径)。
shape_type=“rectangle”:创建长方形(参数:长、宽)。

# 与前面几个题不同,这题是创造一个函数,但是需要用到前面类
# 由于circle和rectangle是形状,所以可以定义一个形状类,然后circle和rectangle继承形状类
# 但是二者参数不同
def create_shape(shape_type, *args):# 检查形状类型if shape_type == "circle":if len(args) != 1: #如果 shape_type 是 "rectangle",则检查 args 是否有两个元素(即长度和宽度)。raise ValueError("Circle requires exactly one argument: radius.") #如果参数数量不正确,抛出异常。return Circle(*args) elif shape_type == "rectangle": #否则,使用传入的长度和宽度创建并返回一个 Rectangle 对象if len(args) != 2:raise ValueError("Rectangle requires exactly two arguments: length and width.")return Rectangle(*args)else:raise ValueError(f"Unknown shape type: {shape_type}") #如果形状类型未知,抛出异常。
# 测试
circle = create_shape("circle", 5)
print("Circle Area:", circle.calculate_area())
print("Circle Circumference:", circle.calculate_circumference())
http://www.xdnf.cn/news/507133.html

相关文章:

  • CAS(Compare-And-Swap)详解
  • c++ 友元函数
  • STM32入门笔记(06):STM32Cube 生态系统 (STM32CubeMX图形工具STM32CubeIDE 集成开发环境)(HAL库)
  • W5500使用ioLibrary库创建DHCP客户端
  • Day12-苍穹外卖(完结篇)
  • Typecho博客为文章添加AI摘要功能(Handsome主题优化版)
  • 江协科技OLED移植hal库
  • 院校机试刷题第五天:1912循环位移、1913礼炮车
  • CE17.【C++ Cont】练习题组17(堆专题)
  • 基于C++11CAS实现无锁队列
  • 【IP101】图像“瘦身魔法“详解:从基础细化到Zhang-Suen、Hilditch算法与中轴变换的完整代码实现
  • 剖析智能指针shared_ptr实现原理
  • Devin 编程智能体
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-专科组(国赛)解题报告 | 珂学家
  • Active Directory域环境信息收集实战指南
  • 摄影构图小节
  • [逆向工程]C++实现DLL注入:原理、实现与防御全解析(二十五)
  • Flowbite 和 daisyUI 那个好用?
  • AI Agent开发第69课-彻底消除RAG知识库幻觉(3)-手撕“重排序”
  • W5500使用ioLibrary库创建DNS客户端
  • 【人工智能】DeepSeek解码:揭秘AI大模型训练的创新密码
  • 从0到1:Python项目部署与运维全攻略(10/10)
  • 如何在Cursor中高效使用MCP协议
  • 桌面端进程通信
  • 第十一课 蜗牛爬树
  • 恢复因 oh-my-zsh 安装导致丢失的 zsh 环境变量
  • 【Docker 新手入门指南】第五章:Hello Word
  • JavaScript运算符
  • 人工智能-自然语言与语音产品实现
  • SpringBoot--自动配置原理详解