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

打卡day28

知识点回顾:

  1. 类的定义
  2. pass占位语句
  3. 类的初始化方法
  4. 类的普通方法
  5. 类的继承:属性的继承、方法的继承

作业

题目1:定义圆(Circle)类

要求:

  1. 包含属性:半径 radius。
  2. 包含方法:
  • calculate_area():计算圆的面积(公式:πr²)。
  • calculate_circumference():计算圆的周长(公式:2πr)。
  1. 初始化时需传入半径,默认值为 1。
import mathclass Circle:def __init__(self, radius=1):"""初始化圆的半径,默认值为1"""self.radius = radiusdef calculate_area(self):"""计算圆的面积,公式:πr²"""return math.pi * self.radius **2def calculate_circumference(self):"""计算圆的周长,公式:2πr"""return 2 * math.pi * self.radius# 创建半径为5的圆
circle1 = Circle(5)
print(f"面积: {circle1.calculate_area()}")
print(f"周长: {circle1.calculate_circumference()}")# 创建默认半径(1)的圆
circle2 = Circle()
print(f"默认半径圆的面积: {circle2.calculate_area()}")面积: 78.53981633974483
周长: 31.41592653589793
默认半径圆的面积: 3.141592653589793

题目2:定义长方形(Rectangle)类

  1. 包含属性:长 length、宽 width。
  2. 包含方法:
  • calculate_area():计算面积(公式:长×宽)。
  • calculate_perimeter():计算周长(公式:2×(长+宽))。 is_square() 方法,判断是否为正方形(长 == 宽)。
  1. 初始化时需传入长和宽,默认值均为 1。
class Rectangle:def __init__(self, length=1, width=1):"""初始化长方形的长和宽,默认值均为1"""self.length = lengthself.width = widthdef calculate_area(self):"""计算长方形的面积,公式:长×宽"""return self.length * self.widthdef calculate_perimeter(self):"""计算长方形的周长,公式:2×(长+宽)"""return 2 * (self.length + self.width)def is_square(self):"""判断是否为正方形(长 == 宽)"""return self.length == self.width# 示例用法
if __name__ == "__main__":# 创建一个长为5,宽为3的长方形rect1 = Rectangle(5, 3)print("长为5,宽为3的长方形:")print(f"面积:{rect1.calculate_area()}")print(f"周长:{rect1.calculate_perimeter()}")print(f"是否为正方形:{rect1.is_square()}\n")# 创建一个边长为4的正方形(使用长方形类)square = Rectangle(4, 4)print("边长为4的正方形:")print(f"面积:{square.calculate_area()}")print(f"周长:{square.calculate_perimeter()}")print(f"是否为正方形:{square.is_square()}\n")# 创建一个使用默认值的长方形rect2 = Rectangle()print("默认值的长方形(长1,宽1):")print(f"面积:{rect2.calculate_area()}")print(f"周长:{rect2.calculate_perimeter()}")print(f"是否为正方形:{rect2.is_square()}")长为5,宽为3的长方形:
面积:15
周长:16
是否为正方形:False
边长为4的正方形:
面积:16
周长:16
是否为正方形:True
默认值的长方形(长1,宽1):
面积:1
周长:4
是否为正方形:True

题目3:图形工厂

创建一个工厂函数 create_shape(shape_type, *args),根据类型创建不同图形对象:图形工厂(函数或类)

shape_type="circle":创建圆(参数:半径)。

shape_type="rectangle":创建长方形(参数:长、宽)。

import math# 圆类定义
class Circle:def __init__(self, radius=1):self.radius = radiusdef calculate_area(self):return math.pi * self.radius **2def calculate_circumference(self):return 2 * math.pi * self.radiusdef __str__(self):return f"圆(半径: {self.radius})"# 长方形类定义
class Rectangle:def __init__(self, length=1, width=1):self.length = lengthself.width = widthdef calculate_area(self):return self.length * self.widthdef calculate_perimeter(self):return 2 * (self.length + self.width)def is_square(self):return self.length == self.widthdef __str__(self):return f"长方形(长: {self.length}, 宽: {self.width})"# 图形工厂函数
def create_shape(shape_type, *args):"""根据图形类型创建对应的图形对象参数:shape_type: 图形类型,"circle"表示圆,"rectangle"表示长方形*args: 图形的参数,圆需要半径,长方形需要长和宽返回:对应的图形对象"""if shape_type.lower() == "circle":# 圆只需要一个参数:半径radius = args[0] if args else 1return Circle(radius)elif shape_type.lower() == "rectangle":# 长方形需要两个参数:长和宽length = args[0] if len(args) > 0 else 1width = args[1] if len(args) > 1 else 1return Rectangle(length, width)else:raise ValueError(f"不支持的图形类型: {shape_type},支持的类型为'circle'和'rectangle'")# 示例用法
if __name__ == "__main__":# 创建圆circle = create_shape("circle", 5)print(circle)print(f"面积: {circle.calculate_area():.2f}")print(f"周长: {circle.calculate_circumference():.2f}\n")# 创建长方形rectangle = create_shape("rectangle", 6, 4)print(rectangle)print(f"面积: {rectangle.calculate_area()}")print(f"周长: {rectangle.calculate_perimeter()}")print(f"是否为正方形: {rectangle.is_square()}\n")# 创建正方形(特殊的长方形)square = create_shape("rectangle", 3, 3)print(square)print(f"面积: {square.calculate_area()}")print(f"是否为正方形: {square.is_square()}\n")# 使用默认参数创建图形default_circle = create_shape("circle")print(default_circle)default_rect = create_shape("rectangle")print(default_rect)圆(半径: 5)
面积: 78.54
周长: 31.42
长方形(长: 6, 宽: 4)
面积: 24
周长: 20
是否为正方形: False
长方形(长: 3, 宽: 3)
面积: 9
是否为正方形: True
圆(半径: 1)
长方形(长: 1, 宽: 1)

@浙大疏锦行

http://www.lryc.cn/news/610068.html

相关文章:

  • Memcached缓存与Redis缓存的区别、优缺点和适用场景
  • Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享优化中的应用(381)
  • 【C#】操作Execl和Word文件-1
  • orchestrator部署
  • 11.Linux 权限管理,控制对文件的访问(ACL)
  • git操作命令和golang编译脚本
  • 【Spring】SpringBoot 自动配置,@ComponentScan、@Import、ImportSelector接口
  • 【QT】安装与配置
  • 计量学基础 - (二)计量单位制
  • NX982NX984美光固态闪存NX992NY102
  • 高速信号设计之 PCIe6.0 篇
  • Linux之Shell脚本快速入门
  • 【2025最新】Spring Boot + Spring AI 玩转智能应用开发
  • 微服务的编程测评系统10-竞赛删除发布-用户管理-登录注册
  • 雷达系统工程学习:自制极化合成孔径雷达无人机
  • Flask全栈入门:打造区块链艺术品交易所
  • Oracle 定时任务相关
  • Tomcat虚拟主机配置详解和多实例部署
  • k8s的毫核
  • 太阳光模拟器塑料瓶暴晒试验
  • Vue2实现docx,xlsx,pptx预览
  • P1002 [NOIP 2002 普及组] 过河卒
  • ubuntu22.04系统实践 linux基础入门命令(三) 用户管理命令
  • SpringMVC实战指南:从环境搭建到功能实现全解析
  • 先知模型或者说从容的模型
  • RTOS如何保证实时性
  • React 入门:环境搭建、JSX、组件、事件与状态管理
  • 云原生攻防6(Kubernetes扩展知识)
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第五天(jQuery函数库)
  • 官宣朱珠成为集团品牌代言人,转转推动二手消费新风尚