打卡Day28

題目1:定義圓(Circle)類
要求:
1.包含屬性:半徑 radius。
2.包含方法:
●calculate_area():計算圓的面積(公式:πr2)。
●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.pswp.cn/news/905906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905906.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

BERT 進階:Albert 模型詳解與實戰

目錄 BERT 進階:Albert 模型詳解與實戰 一、ALBERT 的優化策略 (一)Embedding 參數因式分解 (二)跨層參數共享 (三)巨劍連貫性損失 二、ALBERT 模型架構 (一)Tran…

使用 163 郵箱實現 Spring Boot 郵箱驗證碼登錄

使用 163 郵箱實現 Spring Boot 郵箱驗證碼登錄 本文將詳細介紹如何使用網易 163 郵箱作為 SMTP 郵件服務器,實現 Spring Boot 項目中的郵件驗證碼發送功能,并解決常見配置報錯問題。 一、為什么需要郵箱授權碼? 出于安全考慮,大…

深入解析Spring Boot與Spring Security的集成實踐

深入解析Spring Boot與Spring Security的集成實踐 引言 在現代Web應用開發中,安全性是一個不可忽視的重要方面。Spring Security作為Spring生態中的安全框架,提供了強大的認證和授權功能。本文將結合Spring Boot,詳細介紹如何集成Spring Se…

C#將1GB大圖裁剪為8張圖片

C#處理超大圖片(1GB)需要特別注意內存管理和性能優化。以下是幾種高效裁剪方案: 方法1:使用System.Drawing分塊處理(內存優化版) using System; using System.Drawing; using System.Drawing.Imaging; us…

Linux系統啟動相關:vmlinux、vmlinuz、zImage,和initrd 、 initramfs,以及SystemV 和 SystemD

目錄 一、vmlinux、vmlinuz、zImage、bzImage、uImage 二、initrd 和 initramfs 1、initrd(Initial RAM Disk) 2、initramfs(Initial RAM Filesystem) 3、initrd vs. initramfs 對比 4. 如何查看和生成 initramfs 三、Syste…

AIStarter Windows 版本迎來重磅更新!模型插件工作流上線,支持 Ollama / ComfyUI 等多平臺本地部署模型統一管理

如果你正在使用 AIStarter 工具進行本地 AI 模型部署 ,那么這條消息對你來說非常重要! 在最新推出的 AIStarter Windows 正式版更新中 ,官方對整個平臺進行了功能重構和性能優化,尤其是新增了「模型插件工作流 」功能&#xff0c…

深入理解橋接模式:解耦抽象與實現的設計藝術

一、為什么需要橋接模式?從“類爆炸”問題說起 你是否遇到過這樣的開發困境? 當需要為系統擴展新功能時,繼承體系像滾雪球一樣越變越臃腫:新增一種遙控器類型,需要為電視、音響各寫一個子類;新增一種設備類…

Java 中的泛型原理與實踐案例

引言:為什么需要泛型 在Java 5之前,集合類只能存儲Object類型的對象,這帶來了兩個主要問題: 類型不安全:可以向集合中添加任何類型的對象,容易出錯繁瑣的類型轉換:從集合中取出元素時需要手動…

springboot3+vue3融合項目實戰-大事件文章管理系統-獲取文章分類詳情

GetMapping("/detail")public Result<Category> detail(Integer id){Category c categoryService.findById(id);return Result.success(c);}在CategoryService接口增加 Category findById(Integer id); 在CategoryServiceImpl增加 Overridepublic Category f…

從零開始創建一個 Next.js 項目并實現一個 TodoList 示例

Next.js 是一個基于 React 的服務端渲染框架&#xff0c;它提供了很多開箱即用的功能&#xff0c;如自動路由、API 路由、靜態生成、增量靜態再生等。本文將帶你一步步創建一個 Next.js 項目&#xff0c;并實現一個簡單的 TodoList 功能。 效果地址 &#x1f9f1; 安裝 Next.j…

分布式鎖: Redisson紅鎖(RedLock)原理與實現細節

分布式鎖是分布式系統的核心基礎設施&#xff0c;但 單節點 Redis 鎖在高可用場景下存在致命缺陷&#xff1a;當 Redis 主節點宕機時&#xff0c;從節點可能因異步復制未完成而丟失鎖信息&#xff0c;導致多個客戶端同時持有鎖。為此&#xff0c;Redis 作者 Antirez 提出了 Red…

c++多態面試題之(析構函數與虛函數)

有以下問題展開 析構函數要不要定義成虛函數&#xff1f;基類的析構函數要不要定義成虛函數&#xff1f;如果不定義會有什么問題&#xff0c;定義了在什么場景下起作用。 1. 基類析構函數何時必須定義為虛函數&#xff1f; 當且僅當通過基類指針&#xff08;或引用&#xff09;…

Python高級進階:Vim與Vi使用指南

李升偉 整理 在 Python 高級進階中&#xff0c;使用 Vim 或 Vi 作為代碼編輯器可以顯著提升開發效率&#xff0c;尤其是在遠程服務器開發或快速腳本編輯時。以下是關于它們在 Python 開發中的高級應用詳解&#xff1a; 1. Vim/Vi 簡介 Vi&#xff1a;經典的 Unix 文本編輯器…

Dify中使用插件LocalAI配置模型供應商報錯

服務器使用vllm運行大模型&#xff0c;今天在Dify中使用插件LocalAI配置模型供應商后&#xff0c;使用工作流的時候&#xff0c;報錯&#xff1a;“Run failed: PluginInvokeError: {"args":{},"error_type":"ValueError","message":&…

深度學習驅動下的目標檢測技術:原理、算法與應用創新(二)

三、主流深度學習目標檢測算法剖析 3.1 R - CNN 系列算法 3.1.1 R - CNN 算法詳解 R - CNN&#xff08;Region - based Convolutional Neural Networks&#xff09;是將卷積神經網絡&#xff08;CNN&#xff09;應用于目標檢測領域的開創性算法&#xff0c;其在目標檢測發展歷…

【Umi】項目初始化配置和用戶權限

app.tsx import { RunTimeLayoutConfig } from umijs/max; import { history, RequestConfig } from umi; import { getCurrentUser } from ./services/auth; import { message } from antd;// 獲取用戶信息 export async function getInitialState(): Promise<{currentUse…

[學習] RTKLib詳解:qzslex.c、rcvraw.c與solution.c

RTKLib詳解&#xff1a;qzslex.c、rcvraw.c與solution.c 本文是 RTKLlib詳解 系列文章的一篇&#xff0c;目前該系列文章還在持續總結寫作中&#xff0c;以發表的如下&#xff0c;有興趣的可以翻閱。 [學習] RTKlib詳解&#xff1a;功能、工具與源碼結構解析 [學習]RTKLib詳解…

移植RTOS,發現任務棧溢出怎么辦?

目錄 1、硬件檢測方法 2、軟件檢測方法 3、預防堆棧溢出 4、處理堆棧溢出 在嵌入式系統中&#xff0c;RTOS通過管理多個任務來滿足嚴格的時序要求。任務堆棧管理是RTOS開發中的關鍵環節&#xff0c;尤其是在將RTOS移植到新硬件平臺時。堆棧溢出是嵌入式開發中常見的錯誤&am…

window 顯示驅動開發-使用有保證的協定 DMA 緩沖區模型

Windows Vista 的顯示驅動程序模型保證呈現設備的 DMA 緩沖區和修補程序位置列表的大小。 修補程序位置列表包含 DMA 緩沖區中命令引用的資源的物理內存地址。 在有保證的協定模式下&#xff0c;用戶模式顯示驅動程序知道 DMA 緩沖區和修補程序位置列表的確切大小&#xff0c;…

SD-HOST Controller design-----SD CLK 設計

hclk的分頻電路&#xff0c;得到的分頻時鐘作為sd卡時鐘。 該模塊最終輸出兩個時鐘&#xff1a;一個為fifo_sd_clk,另一個為out_sd_clk_dft。當不分頻時&#xff0c;fifo_sd_clk等于hclk&#xff1b;當分頻時候&#xff0c;div_counter開始計數&#xff0c;記到相應分頻的時候…