《python语言程序设计》2018版第8章18题几何circle2D类(中部)

请添加图片描述

第一、重新分析

  • 第一-1、我设计的第一模式
    • 第一-1-1、遇到的逻辑分析迷雾
    • 第一-1-2、无畏挣扎后的无奈
  • 第二-1、我就把你们两个放到一起,
  • 第二-2、我的想法

当我看到了这个2个园并且比对.

第一-1、我设计的第一模式

设计一个最抽象的Circle2D类.
这个类只包含一个x,y和circle
这个我看到了书里写的直接理解.

第一-1-1、遇到的逻辑分析迷雾

我现在建立了一个仅包含园的类

class Circle2D:def __init__(self, x1, y1, radius1):self.__x1 = x1self.__y1 = y1self.__radius1 = radius1

问题来了.这么个初始化状态,如何添加另一个园呢.第一次做8.18题2023.5,可能就是停在这里.

那我该如何办呢???

第一-1-2、无畏挣扎后的无奈

那我在类里增加一个get_other的函数???

    def get_other(self,x2,y2):

x2,y2用它们来完成,可是我们都清楚__init__没有注明过它们两个.谁能帮我???

第二、爱谁谁

  • 第一-1、我设计的第一模式
    • 第一-1-1、遇到的逻辑分析迷雾
    • 第一-1-2、无畏挣扎后的无奈
  • 第二-1、我就把你们两个放到一起,
  • 第二-2、我的想法

第二-1、我就把你们两个放到一起,

class Circle2D:def __init__(self, x1, y1, radius1, x2, y2, radius2):self.__x1 = x1self.__y1 = y1self.__radius1 = radius1self.__x2 = x2self.__y2 = y2self.__radius2 = radius2def get_area(self):return pow(self.__radius1, 2) * math.pidef get_perimeter(self):return 2 * math.pi * self.__radius1def set_radius(self, radius1):self.__radius1 = radius1def print_radius1(self):return self.__radius1def set_have_two(self, x2, y2):self.__x2 = x2self.__y2 = y2# 比对两个点之间的距离def have_between(self):a_t_valid = self.__x2 - self.__x1b_t_valid = self.__y2 - self.__y1return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05def show_other(self):print(self.__x2, self.__y2)# 比对第2点是否在圆的里面def com_distance(self):return self.__radius1.__lt__(Circle2D.have_between)

对正如大家看到的.我把x1,y1,radius1,x2,y2,radius2放到一个函数.

第二-2、我的想法

其1,我如果不用建立第2个的园和坐标我可以都写0,
然后利用建立set来做后补,

class Circle2D:# 初始化def __init__(self, x1, y1, radius1, x2, y2, radius2):self.__x1 = x1self.__y1 = y1self.__radius1 = radius1self.__x2 = x2self.__y2 = y2self.__radius2 = radius2# 针对获得第一个园的面积def get_area1(self):return pow(self.__radius1, 2) * math.pi# 针对获得第二个园的面积def get_area2(self):return pow(self.__radius2, 2) * math.pi# 针对第一个园的周长def get_perimeter1(self):return 2 * math.pi * self.__radius1# 针对第二个园的周长def get_perimeter2(self):return 2 * math.pi * self.__radius2def set_radius1(self, radius1):self.__radius1 = radius1def print_radius1(self):return self.__radius1def set_have_two(self, x2, y2, radius2):self.__x2 = x2self.__y2 = y2self.__radius2 = radius2# 比对两个点之间的距离def have_between(self):a_t_valid = self.__x2 - self.__x1b_t_valid = self.__y2 - self.__y1return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05def show_other(self):print(self.__x2, self.__y2)# 比对第2点是否在圆的里面def contains_points(self):return self.__radius1.__lt__(Circle2D.have_between)# 比对第2个园是否在第1个园里def contain(self):circle1 = self.__radius1circle2 = self.__radius2if circle2 < circle1 and Circle2D.contains_points(self) is True:print("c1 contains the c2?, True.")else:print("c1 contains the c2?, False.")# 判断另外一个园的圆心是否在园内.
def main_contain_point():a = Circle2D(0, 0, 10, 20, 60, 2)a.set_have_two(30, 20, 40)b_valid = a.contains_points()if b_valid is False:print(a.get_area1())print(f"The two point {a.show_other()} not in")else:print(f"The two point is in Circle")# 此段代码是按两个园的信息放在一个类进行设计.
def main_contain():a = Circle2D(5, 5.5, 10, 9, 1.3, 10)a.contain()main_contain()

今天领导说让我去下面的分院讲课,但是后来又不用了.可是我却充满着期待.自己准备起来.

所以今天就是中集不是下集
看来一天两更还是有些困难.

另外我感觉我似乎有点明白题的要求.

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

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

相关文章

初始C++中的string与迭代

常用的string构造相关类的接口 string类是一个管理字符串的字符数组&#xff0c;string类的出现方便管理我们日常所遇见的&#xff0c;字符名&#xff0c;字符串等等。下面们介绍一下常见的string类接口。 string(); 默认构造&#xff0c;构造空的string类 int main() { …

深度学习电脑独显GPU占用一直0%解决方式

在系统设置里面把硬件加速GPU计划关了 然后重启 再随便跑个模型 打开任务管理器可以看到独显开始工作了 再在GPU1中将3D改成Cuda即可

Vue项目之Element-UI(Breadcrumb)动态面包屑效果 el-breadcrumb

效果预览 需要导航的页面Vue.js 最笨的方法就是在每个需要面包屑的页面中固定写好 <template><div class="example-container"><el-breadcrumb separator="/"

【Linux-基础IO】C语言文件接口回顾 系统文件概念及接口

目录 一、C语言文件接口回顾 C语言基础知识 C中文件操作示例 二、系统文件概念及接口 重定向基本理解的回顾 文件的基本概念 系统调用接口 open read write close lseek 什么是当前路径 一、C语言文件接口回顾 引言&#xff1a;我们并不理解文件&#xff01;从语…

springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)

接着上篇博客的学习。上篇博客是在基本完成用户模块的注册接口的开发以及注册时的参数合法性校验的基础上&#xff0c;基本完成用户模块的登录接口的主逻辑以及提到了问题&#xff1a;"用户未登录&#xff0c;需要通过登录&#xff0c;获取到令牌进行登录认证&#xff0c;…

TypeError: a bytes-like object is required, not ‘str‘ - 完美解决方法

&#x1f680;TypeError: a bytes-like object is required, not str - 完美解决方法&#x1f4a1; &#x1f680;TypeError: a bytes-like object is required, not str - 完美解决方法&#x1f4a1;摘要引言正文1. 错误背景&#xff1a;字节与字符串的区别&#x1f440;2. 错…

告别ESLint噩梦!轻松几步解决 indent 与 react/jsx-indent-props 的 空格 冲突!

话不多说&#xff0c;直接上代码&#xff0c;下面是截取的一部分 eslint 配置。可以看到我设置了四个空格和标签属性对齐首个。 "rules": {"indent": ["error", 4], // 四个空格"react/jsx-indent-props": ["error", "…

双虚拟机部署php项目

前言 经过前面的学习,我们对分布式部署有了一定的了解,这次我们尝试做些东西 准备 我打算用虚拟机部署一个外联网盘 一台虚拟机安装php另一台安装MySQL,但是之前已经安装过 MariaDB 了,就不打算改了。 通常MariaDB与MySQL兼容性很好,可以作为替代使用。彩虹外链网盘项目…

【C++11】异常处理

目录 一、异常的引入 二、C异常的关键字 三、异常的抛出与处理规则 四、异常缺陷的处理 五、自定义异常体系 六、异常规范 七、异常安全 八、异常的优缺点 1.优点 2.缺点 一、异常的引入 传统的C语言处理异常的方式有两种&#xff1a; 1.终止程序&#xff1a;使用as…

CSS 选择器的分类与使用要点一

目录 非 VIP 用户可前往公众号进行免费阅读 标签选择器 id 选择器 类选择器 介绍 公共类 CSS 中优先用 class 选择器,慎用 id 选择器 后代选择器 交集选择器 以标签名作为开头 以类名作为开头 连续交集 并集选择器(分组选择器) 通配符* 儿子选择器 >(IE7…

变量常量标识符

1. 变量 1.1 变量的概念 变量是计算机内存中的一块存储单元&#xff0c;是存储数据的基本单元变量的组成包括&#xff1a;数据类型、变量名、值&#xff0c;后文会具体描述变量的本质作用就是去记录数据的&#xff0c;比如说记录一个人的身高、体重、年龄&#xff0c;就需要去…

PP-HGNet(High Performance GPU Net)

发展历程&#xff1a; DenseNet -> VoVNet -> HGNet VoVNet是DenseNet的改进&#xff0c;如图&#xff1a; VoVNet论文网址&#xff1a; https://arxiv.org/pdf/1904.09730 HGNet模型简介 PP-HGNet(High Performance GPU Net) 是百度飞桨视觉团队自研的更适用于 GPU…

【AI大模型】对接LLM API

本章节主要介绍四种大语言模型&#xff08;ChatGPTAPI、文心一言、讯飞星火、智谱 GLM&#xff09;的 API 申请指引和 Python 版本的原生 API 调用方法。 文心一言&#xff1a;当前无赠送新用户 tokens 的活动&#xff0c;推荐已有文心 tokens 额度用户和付费用户使用&#xf…

果断收藏!2024年最好用的七款高效论文写作神器

在2024年&#xff0c;随着人工智能技术的飞速发展&#xff0c;AI论文写作工具成为学术研究和写作领域的一大助力。这些工具不仅能够显著提高写作效率&#xff0c;还能帮助学者和学生节省时间&#xff0c;减少熬夜&#xff0c;同时保证论文质量。以下是七款高效且值得收藏的AI论…

Python_控制循环语句

if语句单分支结构的语法形式如下&#xff1a; 【操作】输入一个数字&#xff0c;小于10&#xff0c;则打印这个数字(if_test01.py)&#xff1a; num input("输入一个数字&#xff1a;") if int(num)<10: print("小于10的数&#xff1a;"num)条件表达式…

2024年华为杯数学建模E题-高速公路应急车道启用建模-基于YOLO8的数据处理代码参考(无偿分享)

利用YOLO模型进行高速公路交通流量分析 识别效果&#xff1a; 免责声明 本文所提供的信息和内容仅供参考。尽管我尽力确保所提供信息的准确性和可靠性&#xff0c;但我们不对其完整性、准确性或及时性作出任何保证。使用本文信息所造成的任何直接或间接损失&#xff0c;本人…

资源创建方式-Job

Job: 容器按照持续运行的时间可分为两类&#xff0c;服务类容器&#xff0c;和工作类容器 服务类容器通常持续提供服务&#xff0c;需要一直运行&#xff0c;比如HTTP,Server&#xff0c;Daemon等&#xff0c; 工作类容器则是一次性任务&#xff0c;比如批处理程序&#xff0…

stm32单片机个人学习笔记7(TIM定时中断)

前言 本篇文章属于stm32单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 STM32入门教程-2023版 细…

数值计算 --- 平方根倒数快速算法(中)

平方根倒数快速算法 --- 向Greg Walsh致敬&#xff01; 1&#xff0c;平方根倒数快速算法是如何选择初值的?WTF中的神秘数字究竟是怎么来的&#xff1f; 花开两朵&#xff0c;各表一枝。在前面的介绍中&#xff0c;我们已经知道了这段代码的作者在函数的最后使用了NR-iteratio…

Python办公自动化教程(003):PDF的加密

【1】代码 from PyPDF2 import PdfReader, PdfWriter# 读取PDF文件 pdf_reader PdfReader(./file/Python教程_1.pdf) pdf_writer PdfWriter()# 对第1页进行加密 page pdf_reader.pages[0]pdf_writer.add_page(page) # 设置密码 pdf_writer.encrypt(3535)with open(./file/P…