利用 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. Fiddler抓取https原理

    首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手.第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据 ...

  2. C# 字符串按设置的格试在前面或后面增加空格或其它字符

    public string lengadd(string stringa, string stringb, int count, int mode) //以stringa的长度,未到count的长度则 ...

  3. 如果只有1小时学Python,看这篇就够了

    大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...

  4. ios获取数组中的最大值

    在编码过程中,我们通常碰到一组数据,需要自己简单的处理下,拿到数组中的总和,大小和平均值数据. 1.简单粗暴的方法,快速求和. NSArray * array = @[@"35", ...

  5. Spring之IOC原理及代码详解

    一.什么是IOC 引用 Spring 官方原文:This chapter covers the Spring Framework implementation of the Inversion of ...

  6. mysql limit和offset用法

    limit和offset用法 mysql里分页一般用limit来实现 1. select* from article LIMIT 1,3 2.select * from article LIMIT 3 ...

  7. 巧用XML格式数据传入存储过程转成表数据格式

    1.首先将后台数据转成对应的XML数据格式 /// <summary> /// 集合转XML数据格式 /// </summary> /// <param name=&qu ...

  8. 《Python编程:从入门到实践》第三章 列表简介 习题答案

    #3.1 names=['lpr','tjl','gnl','by','dqy']; print(names[0]); print(names[1]); print(names[2]); print( ...

  9. JVM学习总结

    JVM指令执行流程架构图:

  10. 6. kafka序列化和反序列化

    https://blog.csdn.net/weixin_33690963/article/details/91698279 kafka序列化: 生产者在将消息传入kafka之前需要将其序列化成byt ...