三角形是个好东西,比如知道三条边边长,可以判断能不能组成三角形(两边之和大于第三边),如果可以就进一步计算其面积(海伦公式),最后还能把这个三角形画出来(余弦定理求角度),所以说这个作为一个编程题目用于教学是比较棒的。

在jupyterlab中运行效果如下:

python源代码如下:

# %matplotlib inline
# 建议在jupyterlab中运行import math
import numpy as np
import matplotlib.pyplot as pltdef judge(lines):"""判断是否能组成三角形"""flag = 0for i in range(3):l1 = lines.copy() # 要copy,不然会对源进行修改r = l1.pop(i) # r被取出,l1剩余俩if (r>=sum(l1)):print("输入的边长无法构成三角形")breakelse:flag += 1continueif flag==3:return Trueelse:return Falsedef plot_triangle():lines = input("输入三条边长并用空格隔开:")params = lines.split(" ")lines = list(map(lambda x:float(x),params))if judge(lines):p = sum(lines)/2a,b,c = linesarea = math.sqrt(p*(p-a)*(p-b)*(p-c))width = max(lines)height = area/width*2# 计算角度lines = [a,b,c]idx_A = np.argmax(lines)A = lines.pop(idx_A)# 最长边作为底部边长,最左侧与坐标轴原点对齐B,C = lines# 根据三边长求两个水平夹角角度cos_C = (A**2+B**2-C**2)/(2*A*B)cos_B = (A**2+C**2-B**2)/(2*A*C)# 根据余弦值求得正切值k_C = math.tan(math.acos(cos_C))k_B = math.tan(math.acos(cos_B))# 根据正切值和高,获得边长w_C = height/k_Cw_B = height/k_B# 确定三个顶点的坐标loc_A = (0,height)loc_B = (-w_B,0)loc_C = (w_C,0)plt.figure(figsize=(4,3))plt.plot([0,-w_B,w_C,0],[height,0,0,height],"gray")plt.plot([0,0],[0,height],"r--")plt.text(1,height/2,"h=%.1f"%(height),color="blue",fontsize=12)ax = plt.gca()ax.set_aspect(1) # 保证两条坐标轴scale一致plt.axis('off') # 关闭显示直角坐标系plt.savefig("./trianle.png",dpi=300)print("三角形面积为:%.4f"%(area))if __name__=="__main__":plot_triangle()

补充知识: Python 三角形类,实现数据的输入、输出、周长、面积的计算

我就废话不多说了,还是直接看代码吧!

import math
class Triangle:def __init__(self):a=0b=0c=0def add(self):self.a=int(input("输入第1条边的长度:"))self.b=int(input("输入第2条边的长度:"))self.c=int(input("输入第3条边的长度:"))while (self.a+self.b<=self.c):print("不符合三角边的规定,重新输入!")self.a=int(input("输入第1条边的长度:"))self.b=int(input("输入第2条边的长度:"))self.c=int(input("输入第3条边的长度:"))def out(self):print (self.a,self.b,self.c)def length(self):print (self.a+self.b+self.c)def area(self):print ((((a+b+c)/2)-a)*(((a+b+c)/2)-b)*(((a+b+c)/2)-c)*((a+b+c)/2))t=Triangle()
t.add()
t.out()
t.length()
t.area()

以上这篇python实现输入三角形边长自动作图求面积案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间:2020-04-12

python循环输出三角形图案的例子

我就废话不多说了,直接上代码吧! #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py #作 者:孔云 #问题描述:编写程序,使用双循环输出三角形图案. #问题分析:本程序由图形知,包含5行,即外层循环执行5次,每行内容的由三部分内容组成:空格.星号.回车,分别通过两个for循环和一条print语句实现.代码如下: for i in range(1,6): for j in range(5-i): print(" "

python打印直角三角形与等腰三角形实例代码

前言 本文通过示例给大家详细介绍了关于python打印三角形的相关,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1.直角三角形 #i控制行数j控制*的个数 for i in range(5): i += 1 for j in range(i): print('*', end='')#end=''输出空格 print() /2.等腰三角形 row = int(input('please enter a rows')) for i in range(row): for j in

Python利用for循环打印星号三角形的案例

简单的for循环打印三角形 1,for循环方法实现星星三角 代码: for i in range(0,5): for j in range(i+1): if i == 4: print("* ",end="") continue if j == 0 or j == i: print("* ",end="") else: print(" ",end="") print() 2.实心三角:

python 已知三条边求三角形的角度案例

我就废话不多说了,还是直接看代码吧! import math a=1;//边1 b=1;//边2 c=math.sqrt(2);//边3 A=math.degrees(math.acos((a*a-b*b-c*c)/(-2*b*c)))//夹角1 B=math.degrees(math.acos((b*b-a*a-c*c)/(-2*a*c)))//夹角2 C=math.degrees(math.acos((c*c-a*a-b*b)/(-2*a*b)))//夹角3 print(A) print(B

python 叠加等边三角形的绘制的实现

python语言程序设计基础 习题2.5 import turtle def drawTriangle(num,len,flag):#flag用来调整画三角形的方向 flag*=-1 len/=2 if(num==1): if(flag==1): turtle.left(60) turtle.fd(len) turtle.right(120) turtle.fd(len) turtle.right(120) turtle.fd(len) turtle.left(120) else: turtle

如何使用Python 打印各种三角形

直角三角形 rows = int(input('输入列数:')) for i in range(1, rows): print('*' * i) for i in range(1, rows): for j in range(i): print("*", end="") print("") 等腰直角三角形 rows = int(input('输入列数:')) for i in range(1, rows): print(' * ' * i) fo

Python判断三段线能否构成三角形的代码

我就废话不多说了,还是直接看代码吧! #!/usr/bin/env python3 #coding = utf-8 def is_triangle(a=0, b=0, c=0): #abc 三条边长 A = [a,b,c] A.sort() #升序排序 if A[2] < A[1] +A[0]: print("{} is triangle".format(A)) else: print("不构成三角") def triangle(f): a = float(i

Python3如何判断三角形的类型

# 判断三角形类型 def triangle(a,b,c): if a>0 and b>0 and c>0: if a+b>c and b+c>a and a+c>b: if a == b and b == c: return ("这是等边三角形") elif a == b or b == c or c == a: return("这是等腰三角形") else: return("这是不规则三角形") elif

C#判断三角形的类型

题目描述: 输入三角形的三条边长,判断是否能构成一个三角形(不考虑退化三角形,即面积为零的三角形),是什么样的三角形(直角.锐角.钝角.等边.等腰). 函数声明为:byte GetTriangleType(int,int,int) 1. 如何用一个byte来表示各种输出情况? 2. 如果你是一名测试工程师,应该如何写测试用例来完成功能测试呢? 题目解析: 对于如何用一个byte表示各种输出情况,不是很清楚,有待研究. 下面的程序我只是实现了功能,并没有按照给定的函数声明的格式完成,大家可以参考参

js判断当前浏览器类型,判断IE浏览器方法

最短IE判断方法,原文地址: http://www.jb51.net/article/23621.htm 判断IE浏览器最短方法:var isIE = !-[1,] 原理:[1,]在标准浏览器中返回"1",相当于调用[1,].toString(),在IE中返回"1,"在这个时候对返回值使用负号强制转换为数字时,标准浏览器返回1,IE则返回NaN,再对1和NaN取反时,标准浏览器返回false,IE返回true. js判断浏览器类型 原文基本上没有什么问题,但他的判断

js判断主流浏览器类型和版本号的简单实现代码

如今的互联网中,浏览器可以说是太多太多了,但是大部分都是换壳不换心,基本上主流的浏览器还是火狐,谷歌,IE,safrai这几种比较常见,所以在我们的开发中,有时候需要遇到判断用户正在使用什么浏览器以及使用的版本是多少,并根据返回值,给予一定的提示,下面,我就简单的介绍一种判断用户浏览器的使用情况的代码. var distinguishBrowser= function browserInfo() { var browser = { // IE浏览器 msie: false, // 谷歌浏览器 c

基于jQuery1.9版本如何判断浏览器版本类型

在jquery.1.9以前的版本,可以使用$.browser很轻松的判断浏览器的类型和版本,但是在1.9中和以后的版本中,$.browser已经被删除,下面就介绍一下如何实现此功能,希望能够给需要的朋友带来帮助. 一.自定义代码: $.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); $.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCas

iOS判断运营商类型的实现方法

一.获取运营类型 1.需要导入两个头文件 #import <CoreTelephony/CTCarrier.h> #import <CoreTelephony/CTTelephonyNetworkInfo.h> 2.判断类型 // 获取运营商类型 + (SSOperatorsType)getOperatorsType{ CTTelephonyNetworkInfo *telephonyInfo = [[CTTelephonyNetworkInfo alloc] init]; CTC

使用php判断浏览器的类型和语言的函数代码

我们经常看到有一些网站上面会显示出你目前使用的浏览器类型和使用的语言,比如显示的是:您使用的浏览器为 IE6,繁体字.看起来是不是很炫. 其实这样的功能不难实现,无非就是判断浏览器的类型和语言,如果用JS来做应该很简单,这里我们看看用PHP来怎么实现这样的功能,既然是在做判断,就可以用PHP的条件语句if..else来判断实现. 判断浏览器类型: <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> 判断浏览器语言: <?php ech

js判断undefined变量类型使用typeof

js判断undefined变量类型直接用 复制代码 代码如下: if(mydata=='undefined'){ alert("未定义"); } 这是个很低级的错误,这么使: 复制代码 代码如下: if(typeof(mydata)=='undefined'){ alert("未定义"); }

JSP中实现判断客户端手机类型并跳转到app下载页面

判断客户端手机类型,并跳转到相应的app下载页面 实现的原理,是检测浏览器的 USER-AGENT 这个header,然后根据正则表达式来确定客户端类型. 如果都不匹配,Fallback回退策略是显示对应的页面,让用户自己选择. 适合采用二维码扫描方式下载APP: JSP版本的代码如下所示:其他服务端版本请百度搜索. <%@page import="java.util.regex.Matcher"%> <%@page import="java.util.re

两款JS脚本判断手机浏览器类型跳转WAP手机网站

随着移动设备的普及,企业的网络宣传已经不能局限在PC端,而需要同时在移动端有所建树.对于公司网站来说,以前都是做的PC端的,当然手机等移动端也可以访问,但是用户体验肯定不如完全适合的手机端来的方便.我们在给自己的网站做了WAP手机网站之后,如果有用户通过手机访问我们的企业顶级域名网站,那就判断跳转到专为的WAP网站. 这里老左整理到目前自己在使用的2种JS脚本,因为之前一直有朋友跟我要,所以这里分享出来. 第一种:直接JS脚本 <script type="text/javascript&q

用JavaScript判断CSS浏览器类型前缀的两种方法

不管我们对浏览器类型前缀有多么的讨厌,我们都不得不每天面对它,否者有些东西不能正常工作.这些前缀的用法有两种:在CSS里(例如"-moz-")和在JS里.有一个神奇的 X-Tag 项目里有一段很聪明的JavaScript脚本,可以用来判断当前使用的是什么前缀--让我来展示它是如何工作的! 比如 CSS 前缀,IE 的是 "-ms-",旧版 Opera 的是 "-o-",Firefox 的是 "-moz-",Safari/Chr

python实现输入三角形边长自动作图求面积案例相关推荐

  1. C++求复数的角度_python实现输入三角形边长自动作图求面积案例

    三角形是个好东西,比如知道三条边边长,可以判断能不能组成三角形(两边之和大于第三边),如果可以就进一步计算其面积(海伦公式),最后还能把这个三角形画出来(余弦定理求角度),所以说这个作为一个编程题目用 ...

  2. python绘制如下图形、小三角形边长20_python实现输入三角形边长自动作图求面积案例...

    三角形是个好东西,比如知道三条边边长,可以判断能不能组成三角形(两边之和大于第三边),如果可以就进一步计算其面积(海伦公式),最后还能把这个三角形画出来(余弦定理求角度),所以说这个作为一个编程题目用 ...

  3. 输入三角形边长,求三角形面积

    输入三角形边长,求三角形面积 #include <stdio.h> #include <math.h> int main() {float a, b, c;scanf(&quo ...

  4. Python实现输入电影名字自动生成豆瓣评论词云图(带GUI界面)小程序

    Python实现输入电影名字自动生成豆瓣评论词云图(带GUI界面)小程序 一.项目背景 电影逐渐成为人们生活的不可或缺的一部分,而了解一部电影的可以通过电影评分与大众推荐度,但以上的方式都太过于片面, ...

  5. 用python编程输入三角形的三条边判断是否构成三角形_输入三角形的三条边a,b,c,判断它们能否构成三角形。若能构成三角形,指出是何种三角形....

    任务说明: 输入三角形的三条边a,b,c,判断它们能否构成三角形.若能构成三角形,指出是何种三角形.注:判断浮点数是否相等其差的绝对值小于10-3即认为相等.需用5种测试用例. 输入要求: " ...

  6. 【Python】输入三角形三条边的长度,输出三角形的面积。

    问题描述:依次输入三角形三条边的长度,输出三角形的面积 输入样例: 请输入第一条边的值:1 请输入第二条边的值:2 请输入第三条边的值:2 三角形的面积是:0.968246进程已结束,退出代码 0 代 ...

  7. C语言·三角形已知三边求面积题

    题目:已知三角形三边a,b,c,求面积area.(请考虑到两边之和大于第三边的判断) 注意:需引用到sqrt()函数和海伦公式 思路: Created with Raphaël 2.2.0开始int ...

  8. C语言:输入三角形边长,求面积。

    #include<stdio.h> #include<math.h>                       void main()                     ...

  9. 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...

    题目: vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题, Dim A=Val(InputBox("请输入a") ) B=Val(InputBox("请 ...

最新文章

  1. mysql怎么引用别的文件_用source语句引用mysql文件的细节注意
  2. qt可视化数据展板_Qt 2D数据可视化之QCharts
  3. WebRTC 系列之音频会话管理
  4. 洛谷P5055 【模板】可持久化文艺平衡树(FHQ Treap)
  5. java web access_Java Web项目中连接Access数据库的配置方法
  6. 图论——图的遍历(洛谷 P3916)
  7. fastjson map转json_Java对象转JSON咋这么头疼?不!那是你还没使用Fastjson
  8. 在线打mysql代码_mysql 在线alter table要留神_mysql
  9. 软件设计师备考知识03
  10. B树和B+树详细解析
  11. Java面向对象编程三大特征 - 继承
  12. 指派问题的遗传算法求解 Java实现
  13. Mac词典扩充、本地化
  14. mysql 一张表连两次_MySQL查询两次和双表联查哪个效率高
  15. 【Python实例学习】用Python的xlsxwriter模块操作Excel表格,包括写入数据、样式设置、插入图片等
  16. php中file_get_contents与curl性能比较分析
  17. C/C++宽字符与控制台程序
  18. 【我的小工具】图片拼接工具
  19. 文本分析论文基本方法论
  20. 常见的网络连接设备有哪些?

热门文章

  1. 索引-linux-技术大钢
  2. PHP处理图片导致内存溢出
  3. Enter passphrase for key '/home/mha/.ssh/id_rsa解决方法
  4. 通过fiddler和逍遥模拟器模拟抓包android手机
  5. 利用burp实现弱密码破解
  6. “智囊”机器人:让我为你解答工作中的任何问题!
  7. Dns-prefetch DNS 预解析优化页面加载速度
  8. TypeScript入门教程 之 const
  9. Mac下的Docker及Kubernetes(k8s)本地环境搭建与应用部署、管理界面kubernetes-dashboard
  10. Log4--Java日志记录器