利用 Python 尝试采用面向对象的设计方法。
(1)设计一个基类 Shape:
包含两个成员函数:
def cal_area(): 计算并返回该图形的面积,保留两位小数;
def cal_perimeter(): 计算并返回该图形的周长,保留两位小数。
def display(): 三行字符串,分别显示名称、面积、周长,数值四舍五入保留两
位小数,如下:
名称是 rect
面积是 6
周长是 10
包含三个变量:
name:表示名称,字符串类型;
area:表示面积,数字;
perimeter:表示周长,数字。
(2)设计三个派生类: Rectangle、 Triangle、 Circle;派生类分别实现基类中的两个成
员函数。
Rectangle:构造函数参数(n, a, b), n 为名称,其他均为浮点数,两位小数, a、 b 分
别代表长和宽。
Triangle:构造函数参数(n, a, b, c), n 为名称,其他均为浮点数,两位小数,代表三
边的长度。
Circle:构造函数参数(n, a), n 为名称, a 为浮点数,两位小数,代表圆的半径,圆
周率取 3.14 进行计算。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#题目8:计算图形面积及周长
import math
class Shape: def __init__(self,name,area,perimeter):
self.name = name
self.area = area
self.perimeter = perimeter
def cal_area(self):
pass
def cal_perimeter(self):
pass
def display(self):
print('名称:',self.name)
print('面积:',self.area)
print('周长:',self.perimeter)
class Rectangle(Shape):
def __init__(self,n,a,b):
self.n = n
self.a=a
self.b=b
def cal_area(self):
area = round (self.a * self.b, 2)
def cal_perimeter(self,):
perimeter=round(2*(self.a+self.b),2) class Triangle(Shape):
def __init__(self,n,a,b,c):
self.n=n
self.a=a
self.b=b
self.c=c
def cal_area(self):
p=(self.a+self.b+self.c)/2
area=round(math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c)),2)
return area def cal_perimeter(self):
perimeter=self.a+self.b+self.c
return perimeter class Circle(Shape):
def __init__(self,n,a):
self.n = n
self.a=a
def cal_perimeter(self):
perimeter=round(2*3.14*self.a,2)
return perimeter
def cal_area(self):
area=round(3.14*self.a**2,2)
return area

可直接联系客服QQ交代需求:953586085

欢迎光临程序代写小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

欢迎点击链接加入群聊【程序代写-接单群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL

群号:733065427



if __name__ == '__main__':
cir=Circle('cir',3)
result=Shape(cir.n,cir.cal_area(),cir.cal_perimeter())
result.display() ret=Rectangle('ret',4,5)
result=Shape(ret.n,ret.cal_area(),ret.cal_perimeter())
result.display() tri=Triangle('tri',2,4,5)
result=Shape(tri.n,tri.cal_area(),tri.cal_perimeter())
result.display()

利用 Python 尝试采用面向对象的设计方法计算图形面积及周长的更多相关文章

  1. 利用python批量修改word文件名的方法示例

    利用python批量修改word文件名的方法示例 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完 ...

  2. 利用C++中采用面向对象的思想顺序表

    最近在复习数据结构,我用面向对象的思想实现了顺序表,采用C++语言. 首先建立在Visual Studio 2017中建立一个工程,然后新建一个类SqList.然后会生成SqList.h和SqList ...

  3. 利用Python进行数据分析(6) NumPy基础: 矢量计算

    矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...

  4. 利用python实现电影推荐

    "协同过滤"是推荐系统中的常用技术,按照分析维度的不同可实现"基于用户"和"基于产品"的推荐. 以下是利用python实现电影推荐的具体方法 ...

  5. 转利用python实现电影推荐

    “协同过滤”是推荐系统中的常用技术,按照分析维度的不同可实现“基于用户”和“基于产品”的推荐. 以下是利用python实现电影推荐的具体方法,其中数据集源于<集体编程智慧>一书,后续的编程 ...

  6. 利用python进行数据分析PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:hi2j 内容简介 [名人推荐] "科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法.本书在未来几年里肯定会成为Python领域中技术计 ...

  7. 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)

    面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明( ...

  8. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  9. [python 译] 基于面向对象的分析和设计

    [python 译] 基于面向对象的分析和设计 // */ // ]]>   [python 译] 基于面向对象的分析和设计 Table of Contents 1 原文地址 2 引言 2.1 ...

随机推荐

  1. Inline Hook 钩子编写技巧

    Hook 技术通常被称为钩子技术,Hook技术是Windows系统用于替代中断机制的具体实现,钩子的含义就是在程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权,在执行系统调用之前执行自身程序, ...

  2. THUPC2019/CTS2019/APIO2019/PKUSC2019游记

    THUPC2019/CTS2019/APIO2019/PKUSC2019游记 5.10 中铺,火车好晃啊 5.11 打了THUPC2019的练习赛,华容道好评(四个小兵,杠鸭!) 5.12 打了THU ...

  3. VS.NET(C#)--2.8HTML服务器控件

    HTML服务器控件 服务器不处理HTML控件,例如:<h1>.<a>超链接.<input>,直接送到客户端,由浏览器呈现. 把HTML控件转换成HTML服务器控件, ...

  4. javascript序列化表单追加参数

    js序列化表单后追加参数方式: 追加参数:token,status var data = $.param({"token":token, "status":st ...

  5. css 层叠 比较特殊性

    css 层叠: 多个相同的css声明(属性),应用到同一个元素上.当一个标签声明冲突时,浏览器会自动出发层叠机制 1:比较优先级 2:比较特殊性 3:比较源次序 依次经过上面的1,2,3的比较后,最终 ...

  6. Oracle数据库账户口令复杂度-等保测评之身份鉴别

    1.     默认情况下数据库没有启用密码验证函数功能,可通过下面sql查询 SQL> select limit from dba_profiles where RESOURCE_NAME='P ...

  7. Eclipse 交叉编译环境

    创建空工程 添加交叉编译环境 添加工程文件 如需修改交叉编译环境 Cross GCC:使用交叉编译命令编译,需要自己指定 MinGW GCC:使用make命令编译,需要有Makefile Make T ...

  8. FreeRTOS 基础简介

    为什么选择FreeRTOS UCOS资料多,尤其是中文资料.FreeRTOS资料少,而且大多数是英文的.原因如下: 1.FreeRTOS免费!UCOS收费.这是主要原因 2.很多半导体厂商,采用Fre ...

  9. Vue路由规则中定义参数

    Vue使用routerLinke定义参数的时候  路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...

  10. XSS挑战之旅平台通关练习

    1.第一关 比较简单,测试语句: <svg/onload=alert(1)> <script>confirm(1)</script> <script>p ...