用Python实现“已知三角形两个直角边,求斜边”

要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入。

思路:伪代码描述下步骤

1、-input a value for the base as a float(输入某浮点数作为底边值)

2、-input a value for the height as a float(输入某浮点数作为高的值)

3、-square root--b squared plus h squared(求平方和和开根号)

4、-save that as a float in hype,for hypotenuse(把结果存为hyp,表示斜边)

5、-print something out,using the value in hyp.(打印出结果)

分析以上思路(伪代码),可以得出:

0、用户的输入结果是各种情况,要小心用户的输入

1、代码的抽象化(开方的计算用math模块的sqrt内置函数)

2、流程控制

代码一:

#! /usr/bin/env python

# encoding:utf-8

import math

# 取底

inputOK = False

while not inputOK:

base = input('输入底:')

if type(base) == type(1.0):

inputOK = True

else:

print('错误,底必须为浮点数')

# 取高

inputOK = False

while not inputOK:

height = input('输入高:')

if type(height) == type(1.0):

inputOK = True

else:

print('错误,高必须为浮点数')

#斜边

hyp = math.sqrt(base*base + height*height)

print '底' + str(base) + ',高' + str(height) + ',斜边' + str(hyp)

分析代码一,会发现取底,取高的代码非常相似,这就会让人想到抽象成方法,实现模块化。

所以,就有了代码二:

#!/usr/bin/env python

#coding:utf-8

import math

"""

用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入。

"""

def getFloat(requestMsg, errorMsg):

inputOK = False

while not inputOK:

val = input(requestMsg)

if type(val) == type(1.0):

inputOK = True

else:

print(errorMsg)

return val

base = getFloat('输入底:','错误,底必须为浮点数')

height = getFloat('输入高:','错误,高必须为浮点数')

hyp = math.sqrt(base*base + height*height)

print '底' + str(base) + ',高' + str(height) + ',斜边' + str(hyp)

本文有@易枭寒(499065469@qq.com)根据MIT公开课整理。转载请注明出处和作者信息。

python已知两条直角边求斜边,Python实现“已知三角形两个直角边,求斜边”相关推荐

  1. C++实现求两条直线的交点,以及已知直线外一点求垂足

    已知直线上的两个点或者已知直线的斜率和截距两种情况下求交点和垂足. 两种情况来自于实际求解中可以找到边界上的两个点列出直线方程,也可以用更准确的求法即获取多个点拟合一条直线. 1.求两直线的交点(两点 ...

  2. python中有这样一条语句_在Python中一行书写两条语句时,语句之间可以使用__________作为分隔符。_学小易找答案...

    [填空题]Python表达式4.5/2.4.5//2和4.5%2的值分别为__________________________. [填空题]我国古代文献中所记载的最早的学校类型有两种,分别是 和 . ...

  3. python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...

    我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数.我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示:(2)找到曲线之间该着色区域的总面积. 在matplotlib中 ...

  4. 过椭圆外一点引两条切线方程_椭圆外一点引椭圆的两条切线互相垂直问题巧解 -...

    椭圆外一点引椭圆的两条切线互相垂直问题巧解 x2y2 问题: 已知椭圆c: 2?2?1(a?b?0),点P(x0 ,y0)是椭圆外一点,且由点P引椭 ab圆的两条切线互相垂直,则点P(x0,y0)的轨 ...

  5. 过椭圆外一点引两条切线方程_椭圆外一点引椭圆的两条切线互相垂直问题巧解...

    椭圆外一点引椭圆的两条切线互相垂直问题巧解 1椭圆外一点引椭圆的两条切线互相垂直问题巧解 问题: 已知椭圆 c: ,点 P (x 0 , y 0 )是椭圆外一点,且由点 P 引椭 ) 0 ( 1 2 ...

  6. 给 python 初学者的四条忠告_给 python 初学者的四条忠告,python初学者

    给 python 初学者的四条忠告,python初学者 1. 不要纠结于开发工具的选择,简单直接就是最好的 学习一种编程语言,首先要找一款合用的集成开发工具,似乎是自然而然的想法.为什么不呢?IDE可 ...

  7. 台式计算机装两条内存条开不了机,电脑插了两根内存条后开不了机是怎么回事?...

    好多网友在想升级电脑的时候,第一条就是想到要加一根内存,但是好多网友都会遇到电脑插了两根内存条后开不了机了,这是怎么回事呢?我们一起来看看. 电脑插了两根内存条后开不了机是怎么回事? 1.如果只有其中 ...

  8. python一个图画两条曲线_用python建立两个Y轴的XY曲线图方法

    想把python提取出来的 加载点反力和某个单元的应力画在同一个XY曲线图上,由于两者数量级差太远,故而需要建立有两个Y轴的XY曲线图. 效果为: 代码如下: #创建Quatype,作为标记,用于判断 ...

  9. 给 python 初学者的四条忠告_给 python 初学者的四条忠告-Go语言中文社区

    1. 不要纠结于开发工具的选择,简单直接就是最好的 学习一种编程语言,首先要找一款合用的集成开发工具,似乎是自然而然的想法.为什么不呢?IDE可以自动补齐,可以一键运行,还可以断点调试.使用IDE开发 ...

  10. 给 python 初学者的四条忠告_给python 初学者的四条忠告,减少一些没必要的麻烦...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进击者 ( 想要学习Python?Pyth ...

最新文章

  1. 微信小程序一些常见的坑
  2. 【算法】快速排序与归并排序对比
  3. jTable保存到mysql_怎么把从数据库里的数据输到JTABLE里面
  4. windows netstat 查看端口、进程
  5. 由对称性知定点一定在x轴上_线上优秀教学案例(九)|计算机科学与工程学院刘钊:“延期不延教”之“1+X课堂”...
  6. 在HermesJMS中创建ActiveMQ Session
  7. 信息学奥赛C++语言: 蛇形方阵1
  8. 机器学习理论基础 集成学习前期基础--分类决策树与回归决策树
  9. android studio聊天跳转_android app跳转到微信的示例
  10. 一层交换 二层交换 三层交换 四层交换 七层交换 OSI参考模型
  11. 雅虎前端性能优化的35条军规
  12. 手机视频直播软件全面升级,直播APP源码全新功能体验
  13. iview的DatePicker 怎么选择时分秒
  14. 电脑怎么录屏,什么录屏软件最好
  15. 谷歌浏览器安全证书不受信任_win7系统谷歌浏览器提示该网站的安全证书不受信任的解决方法...
  16. 历史文化名城盛开数字化之花
  17. DB207S-ASEMI手机快充适配器标配整流桥
  18. SpringCloud的@Value注解及GitLab配置使用
  19. JavaScript | 正则表达式
  20. 【html转pdf】html页面导出为pdf文件,纯html版本,简单实现pdf转换【html2canvas+jspdf】

热门文章

  1. C语言_将 4×4 的数组逆时针旋转 90 度后输出
  2. The NTVDM CPU has encountered an illegal instruction. CS:0006 IP:130a ....
  3. 【硬件FPGA 】xilinx_A7调试问题总结(FPGA异常发烫)
  4. 【Python学习笔记】6:用Gauss-Legendre求积公式近似求积分值
  5. 文件存储、对象存储、块存储分不清楚?看完就懂了
  6. OKR 年度规划实践:如何在 2022 年做好准备
  7. 4 int、str类型(数据类型1)、type()
  8. 微前端应用及基于qiankun的微前端实践
  9. 足球一代又一代得青春
  10. 内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具