任意三角形形状判断|Python练习系列[10]

代码演示视频

完整代码和注释如下

class point(object):#定义平面点类
	"""docstring for point"""
	def __init__(self,x,y,name):
		self.x = x
		self.y = y
		self.name = name
	def distance(self,p2):#两点距离公式
		self.d=((self.x-p2.x)**2+(self.y-p2.y)**2)**0.5
		return self.d
	def getd(self,p2):#获取两点距离
		self.distance(p2)
		print(‘The distance of ({},{}) and ({},{}) is {} ‘.format(self.x,self.y,p2.x,p2.y,self.d))
	def istriangle(self,p2,p3):#判断这三点能否形成一个三角形
		self.l_list=[]#先获取这三点构成的三条线段的长度
		self.l_list.append(self.distance(p3))
		self.l_list.append(p2.distance(p3))
		self.l_list.append(self.distance(p2))
		self.l_list.sort()#线段长度由小到大排序
		if (self.l_list[0]+self.l_list[1]>self.l_list[2]) and (self.l_list[1]+self.l_list[2]>self.l_list[0]) and (self.l_list[2]+self.l_list[0]>self.l_list[1]):#长度判断
			return ‘can‘
		else:
			return ‘can not‘
	def getresult(self,p2,p3):#获取能否形成三角形的结果
		result=self.istriangle(p2,p3)
		print(‘Points:‘,self.name,p2.name,p3.name,result,‘form a triangle‘)
	def whichtriangle(self,p2,p3):#判断是哪种三角形
		result=self.istriangle(p2,p3)
		if result==‘can not‘:
			return print(‘Points:‘,self.name,p2.name,p3.name,result,‘form a triangle‘)
		if self.l_list[0]**2+self.l_list[1]**2>self.l_list[2]**2:#锐角
			print(‘Points:‘,self.name,p2.name,p3.name,result,‘form a acute triangle‘)
		elif self.l_list[0]**2+self.l_list[1]**2==self.l_list[2]**2:#直角
			print(‘Points:‘,self.name,p2.name,p3.name,result,‘form a right triangle‘)
		elif self.l_list[0]**2+self.l_list[1]**2<self.l_list[2]**2:#钝角
			print(‘Points:‘,self.name,p2.name,p3.name,result,‘form a obtuse triangle‘)
#测试
p1=point(12,-5,‘p1‘)
p2=point(16,18,‘p2‘)
p3=point(9,7,‘p3‘)
p1.getd(p2)
p1.getresult(p2,p3)
p1.whichtriangle(p2,p3)
print()

p5=point(0,3,‘p5‘)
p6=point(4,0,‘p6‘)
p7=point(0,0,‘p7‘)
p5.getd(p6)
p5.whichtriangle(p6,p7)
print()

p8=point(10,3,‘p8‘)
p9=point(4,3,‘p9‘)
p10=point(-9,0,‘p10‘)
p8.getd(p9)
p8.whichtriangle(p9,p10)

原文地址:https://www.cnblogs.com/Trix/p/12681779.html

时间: 2024-08-29 06:09:00

任意三角形形状判断|Python练习系列[10]的相关文章

学科分数处理与判断|Python练习系列[6]

代码演示视频 完整代码和注释如下 from random import * def judge_grade(): grades_dict={ 'chinese':0, 'math':0, 'english':0, 'biology':0, 'chemistry':0, 'physics':0, 'total':0, }#初始成绩字典 for subject,grades in grades_dict.items():#随机成绩 if subject=='chinese'or subject=='

判断三角形形状

判断三角形形状 一.依据:主要是正.余弦定理的角的形式或者边的形式,其次还可能用到诱导公式,两角和与差的公式和二倍角公式等, 二.变形思路: ①角化边,转化为只有边的形式,解代数方程得到, ②边化角,转化为只有角的形式,解三角方程得到, 三.例题 \(\fbox{例1}\) 设\(\Delta ABC\)的内角\(A,B,C\)所对的边分别为\(a,b,c\),若\(bcosC+ccosB=asinA\),则\(\Delta ABC\)的形状为[] A.锐角三角形 \(\hspace{2cm}\

(原创)Python字符串系列(1)——str对象

在本博客 <Python字符串系列> 中,将介绍以下内容: Python内置的str对象及操作 字符串的格式化 Python中的Unicode字符串 Python中的正则表达式 re模块 本文将介绍Python内置的 str 类型,列举Python中字符串对象支持的方法,使用这些方法可以实现强大的字符串处理功能. 在Python 2 中,普通字符串与Unicode字符串有着明确的区分,二者都是Python内置的基本类型,例如: >>> type(str) <type '

Python学习系列(三)(字符串)

Python学习系列(三)(字符串) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了,可见本人的坚持精神不佳,本系列没有任何目的,纯属业余学习,或者说是一时兴趣所致.通过本文,能够学习字符串的基本操作,日积月累,多多练习,学到了,会用了才是王道. 一.基本概念 1,关于转义问题 1)"''"方式: >>> s="Hello 'Jack'--" >>> print s Hello 'Jack'--

Python学习系列(五)(文件操作及其字典)

Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如: 1 #coding:utf-8 2 fn='test1.py' 3 fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py 4 print 'reading pos:',fp.tell() 5 r=fp.read(20) #

Python学习系列(四)(列表及其函数)

Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么? 一种序列型数据类型,一有序数据集合用逗号间隔用方括号括起来. 2,几种访问形式 1)索引访问,语法结构:list_name[index].注意,列表的索引值从0开始.例如: 1 >>> li=[1,2,3,4,5] 2 >>> print li[2],li[0] 3 3 1 删除

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

Python学习系列(六)(模块)

一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: i)引入模块:import   moduleName ii)引入模块下的函数:from moduleName import function1,function2,-- iii)引入模块下的所有函数:from moduleName import * 使用模块里的函数的方法: moduleName.function(agrs) 示例: >>> import math >

人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门

人脸检测及识别python实现系列(4)--卷积神经网络(CNN)入门 上篇博文我们准备好了2000张训练数据,接下来的几节我们将详细讲述如何利用这些数据训练我们的识别模型.前面说过,原博文给出的训练程序使用的是keras库,对我的机器来说就是tensorflow版的keras.训练程序建立了一个包含4个卷积层的神经网络(CNN),程序利用这个网络训练我的人脸识别模型,并将最终训练结果保存到硬盘上.在我们实际动手操练之前我们必须先弄明白一个问题--什么是卷积神经网络(CNN)? CNN(Conv