利用 Python 尝试采用面向对象的设计方法计算图形面积及周长
利用 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://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 尝试采用面向对象的设计方法计算图形面积及周长的更多相关文章
- 利用python批量修改word文件名的方法示例
利用python批量修改word文件名的方法示例 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完 ...
- 利用C++中采用面向对象的思想顺序表
最近在复习数据结构,我用面向对象的思想实现了顺序表,采用C++语言. 首先建立在Visual Studio 2017中建立一个工程,然后新建一个类SqList.然后会生成SqList.h和SqList ...
- 利用Python进行数据分析(6) NumPy基础: 矢量计算
矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...
- 利用python实现电影推荐
"协同过滤"是推荐系统中的常用技术,按照分析维度的不同可实现"基于用户"和"基于产品"的推荐. 以下是利用python实现电影推荐的具体方法 ...
- 转利用python实现电影推荐
“协同过滤”是推荐系统中的常用技术,按照分析维度的不同可实现“基于用户”和“基于产品”的推荐. 以下是利用python实现电影推荐的具体方法,其中数据集源于<集体编程智慧>一书,后续的编程 ...
- 利用python进行数据分析PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:hi2j 内容简介 [名人推荐] "科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法.本书在未来几年里肯定会成为Python领域中技术计 ...
- 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)
面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明( ...
- python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html 1.__init__() 创建对 ...
- [python 译] 基于面向对象的分析和设计
[python 译] 基于面向对象的分析和设计 // */ // ]]> [python 译] 基于面向对象的分析和设计 Table of Contents 1 原文地址 2 引言 2.1 ...
随机推荐
- react组件懒加载
组件懒加载方式-:react新增的lazy const Alert = lazy(() => import('./components/alert')); export default func ...
- RMAN备份脚本执行遇到RMAN-03002,06091问题处理
一 问题描述 客户说RMAN备份脚本执行有的时候报错,有的时候正常!!! 远程登陆客户环境,查询最后一次备份的日志报错信息,得到 RMAN-03002: failure of delete comma ...
- php批量检测并去除BOM头的代码
开发中会遇到BOM头, 导致程序无法执行. 浏览器返回接口如下图: 去除BOM头解决方法:<?phpini_set('memory_limit','1024M'); function check ...
- MP4数据封装格式
一 .MP4 https://blog.csdn.net/sdsszk/article/details/90719075 MP4 由很多个ATOM 嵌套构成,主要的ATOM包括 [ftyp] ...
- django.http.response中HttpResponse 子类
HttpResponse的子类 Django包含许多处理不同类型的HTTP请求的 HttpResponse 子类.像 HttpResponse 一样,这些类在 django.http 中. HttpR ...
- webpack资源加载常用配置
const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundl ...
- 【robotframework】robotframework环境搭建
一.基于python3.6环境 在dos命令输入 pip install robotframework 在线安装robotframework在dos命令输入 pip install Pypubsub= ...
- CentOS7安装CDH 第十三章:CDH资源池配置
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- pyhton中map和reduce
from functools import reduce import numpy as np ''' reduce[function, sequence[, initial]]使用 1.functi ...
- c# VS.NET 中的调试工具