用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. n^n的末位数字(快速幂)
  4. Android 7.1.1 锁屏界面启动流程
  5. Java设计模式之策略模式---写的比较有趣,推荐大家看看
  6. pandas object转float_25个Pandas实用技巧
  7. 18. OD-反调试研究,破解反调试,编写反调试
  8. t620服务器安装系统,请教高手Dell T620 服务器安装Ubuntu14.04LTS桌面版 非常慢 为什么?...
  9. AD14简单使用教程
  10. iPhone应用炫酷的下拉更新效果
  11. paraview编译
  12. [随笔]_ELVE_git命令复习
  13. QGIS官方样式库首现来自中国的贡献——国土空间规划样式库和分区配色表
  14. 林群院士:从数学谈教育
  15. 【休闲益智】【HTML】看字说颜色
  16. ffmpeg安装教程(windows版)
  17. format格式化工具使用
  18. 37互娱java待遇,37互娱现场java一面
  19. 亿万级数据处理的高效解决方案
  20. 联发科 AI 智能核心板 - XY6877ZA(MT6877 天玑 900)

热门文章

  1. devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
  2. JS字符串过滤数字_过滤大写数字
  3. Element-UI(一) 表格table中实现“加载更多”的功能
  4. C语言:输入一个数,输出以该值为半径的圆面积,以该值为半径的球体表面积与体积,pi取值3.1415926536.
  5. 罗永浩自曝下个创业项目是元宇宙
  6. java web atm机_Java项目实现模拟ATM机
  7. eclipse的python_eclipse中集成python开发环境
  8. 小程序转码机器人-微信小程序转二维码
  9. 第十七届智能视觉组线上赛比赛流程及相关补充说明
  10. 中国联通智能路侧单元白皮书