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

news2024/9/23 10:21:49

请添加图片描述

第一、重新分析

  • 第一-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 = x1
        self.__y1 = y1
        self.__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 = x1
        self.__y1 = y1
        self.__radius1 = radius1
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2

    def get_area(self):
        return pow(self.__radius1, 2) * math.pi

    def get_perimeter(self):
        return 2 * math.pi * self.__radius1

    def set_radius(self, radius1):
        self.__radius1 = radius1

    def print_radius1(self):
        return self.__radius1

    def set_have_two(self, x2, y2):
        self.__x2 = x2
        self.__y2 = y2

    # 比对两个点之间的距离
    def have_between(self):
        a_t_valid = self.__x2 - self.__x1
        b_t_valid = self.__y2 - self.__y1
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05

    def 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 = x1
        self.__y1 = y1
        self.__radius1 = radius1
        self.__x2 = x2
        self.__y2 = y2
        self.__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.__radius2

    def set_radius1(self, radius1):
        self.__radius1 = radius1

    def print_radius1(self):
        return self.__radius1

    def set_have_two(self, x2, y2, radius2):
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2

    # 比对两个点之间的距离
    def have_between(self):
        a_t_valid = self.__x2 - self.__x1
        b_t_valid = self.__y2 - self.__y1
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05

    def 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.__radius1
        circle2 = self.__radius2
        if 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.coloradmin.cn/o/2157290.html

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

相关文章

Parallels Desktop 20 for Mac 推出:完美兼容 macOS Sequoia 与 Win11 24H2

Parallels Desktop 20 for Mac 近日正式发布&#xff0c;这一新版本不仅全面支持 macOS Sequoia 和 Windows 11 24H2&#xff0c;还在企业版中引入了一个全新的管理门户。新版本针对 Windows、macOS 和 Linux 虚拟机进行了多项改进&#xff0c;其中最引人注目的当属 Parallels …

让模型评估模型:构建双代理RAG评估系统的步骤解析

在当前大语言模型(LLM)应用开发的背景下,一个关键问题是如何评估模型输出的准确性。我们需要确定哪些评估指标能够有效衡量提示(prompt)的效果,以及在多大程度上需要对提示进行优化。 为解决这一问题,我们将介绍一个基于双代理的RAG(检索增强生成)评估系统。该系统使用生成代理…

免费开源的AI 智能网盘,图片和媒体管理工具 | 极空间部署『PicHome』

免费开源的AI 智能网盘&#xff0c;图片和媒体管理工具 | 极空间部署『PicHome』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 想必很多小伙伴儿手机&#xff0c;电脑&#xff0c;甚至是网盘上都存取了大量的各类图片&#xff0c;不知道大家都是怎么管理你手头大量的图片的&…

食探秘:Spring Boot校园周边美食发现平台

第三章 系统设计 3.1 系统概要设计 本校园周边美食探索及分享平台选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作&#xff0c;只要用户能连网&#xff0c;任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图3-1所…

PMP--二模--解题--71-80

文章目录 13.干系人管理--干系人登记册--记录干系人的身份信息、评估信息、干系人分类。识别完干系人更新干系人登记册。71、 [单选] 一名初级项目经理被指派到一个新启动的项目&#xff0c;高级项目经理指示该初级项目经理去识别在项目中享有既得利益的人员。高级项目经理让初…

上半年营收净利双降,债台高筑下扩产能,天合光能“激进”前行?

近年来&#xff0c;随着新能源产业的蓬勃兴起&#xff0c;以及消费端对低碳经济追求的日益增强&#xff0c;再叠加分布式光伏发电系统的快速发展&#xff0c;全球市场对光伏组件的需求量愈发高涨。 而我国目前又是全球最大的光伏组件生产国和出口国&#xff0c;这离不开隆基绿…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法&#xff0c;特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里&#xff0c;然后对每个桶内的数据分别进行排序&#xff0c;最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数&#xff0c;因…

LLM大模型训练/推理的显卡内存需求计算

无论你是从头开始训练 LLM、对其进行微调还是部署现有模型&#xff0c;选择合适的 GPU 对成本和效率都至关重要。在这篇博客中&#xff0c;我们将详细介绍使用单个和多个 GPU 以及不同的优化器和批处理大小进行 LLM 训练和推理时 GPU 要求的所有信息。 计算机处理器由多个决定…

SM2无证书及隐式证书公钥机制签名和加密过程详解(一)

前面介绍SM2无证书及隐式证书公钥机制下用户公私密钥对的Python实现&#xff08;具体参看SM2隐式证书用户公私钥生成python代码实现_sm2 python 密钥生成-CSDN博客&#xff09;&#xff0c;可以看到需由用户和KGC&#xff08;可信密钥生成中心&#xff09;共同参与才能计算得到…

小程序-基础知识1

Mustache语法 小程序和vue一样提供了插值语法 但是小程序不能调用方法{{xxxx()}} hidden属性 hidden是所有组件都默认拥有的属性&#xff0c; hidden与wx:if的区别&#xff1a; wx:if是控制组件是否渲染,hidden控制显示或隐藏是通过添加hidden属性。 wx:for 除了可以遍历…

服务器配置虚拟环境及离线安装python

本篇文章基于已经装好conda环境进行哈&#xff0c;不会安装conda可参考服务器离线安装anaconda-CSDN博客 1.打印现有虚拟环境列表 conda env list&#xff0c;可以看见我现在有base、ai、py38三个环境 2.删除指定虚拟环境 conda remove -n py38 --all&#xff0c;回车后输入ye…

LeetCode 面试经典150题 190.颠倒二进制位

复习知识&#xff1a;正数的原码、反码、补码相同&#xff0c;负数的反码在其原码的基础上, 符号位不变&#xff0c;其余各个位取反&#xff0c;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后1 (即在反码的基础上1)。 题目&#xff1a;颠倒给定的 32 位无符号…

全国及分(31个)省全社会就业人数(1978-2022年)

分省就业人数分析 经济发达省份&#xff1a;如广东、江苏、浙江等省份的就业人数较高&#xff0c;这与它们的经济发展水平和产业结构密切相关。欠发达省份&#xff1a;虽然就业人数相对较低&#xff0c;但也呈现出增长态势&#xff0c;显示了国家在区域协调发展上的成效。 从…

软考高级:数据库事务状态区分:活动、部分提交、提交、失败、中止 AI 解读

讲解 数据库事务状态的区分可以用来表示事务在不同阶段的状态。事务&#xff08;Transaction&#xff09;是数据库中的一组操作&#xff0c;要么全部成功&#xff0c;要么全部失败。这些状态可以帮助我们理解事务从开始到结束的整个生命周期。 生活化例子 假设你去餐厅点餐&…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

操作系统week3

操作系统学习 三.内存管理 16.内存映射文件 传统的文件访问方式&#xff1a; open系统调用–打开文件seek系统调用–将读写指针移到某个位置read系统调用–从读写指针所指位置读入若干数据write系统调用–将内存中的指定数据&#xff0c;写回磁盘 内存映射文件的访问方式&…

2.pytest框架实现一些前后置(固件,夹具)的处理,断言和allure-pytest插件生成allure测试报告

一、setup/teardowm,setup_class/teardown_class&#xff08;所有&#xff09; 为什么需要这些功能&#xff1f; 比如&#xff1a;web自动化执行用例之前&#xff0c;请问需要打开浏览器吗&#xff1f;用例执行后需要关闭浏览器吗&#xff1f; 前置后置 二、使用pytest.fixture…

KamaCoder 103. 水流问题

题目要求 N*M的矩阵&#xff0c;数值代表位置的相对高度。矩阵模拟了一个地形&#xff0c;当雨水落上时&#xff0c;会根据地形倾斜向低处流动。但是只能从较高或等高的地点流向较低或等高并且相邻的地点&#xff0c;我们的目标是确定那些单元格&#xff0c;从这些单元格出发的…

[数据结构与算法·C++] 笔记 2.1 线性表

线性结构 概念 二元组 B ( K , R ) B(K,R) B(K,R) K a 0 , a 1 , . . . , a n − 1 K{a_0,a_1,...,a_{n-1}} Ka0​,a1​,...,an−1​ ( R r R{r} Rr) 有一个唯一的开始结点&#xff0c;它没有前驱&#xff0c;有一个唯一的直接后继一个唯一的终止结点&#xff0c;它有一个…

Diffusion Models/Score-based Generative Models背后的深度学习原理(7):估计配分函数

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;有不少订阅我专栏的读者问diffusion models很深奥读不懂&#xff0c;需要先看一些什么知识打下基础&#xff1f;虽然diffusion models是一个非常前沿的工作&#xff0c;但肯定不是凭空产生的&#xff0c;背…