购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4-7 专题
——温度转换/房贷问题/正五角形面积/利用经纬度计算距离

4-7-1 设计摄氏温度和华氏温度的转换

摄氏温度 C elsius, C )的由来是在标准大气压环境,纯水的凝固点是0℃,沸点是100℃,中间划分100等份,每个等份是摄氏1度。为了纪念瑞典科学家 安德斯 · 摄尔修斯 (Anders Celsius)对摄氏温度定义的贡献,所以称为 摄氏温度 (Celsius)。

华氏温度 F ahrenheit, F )的由来是在标准大气压环境,水的凝固点是32℃、水的沸点是212℃,中间划分180等份,每个等份是华氏1度。为了纪念德国科学家 丹尼尔 · 加布里埃尔 · 华伦海特 (Daniel Gabriel Fahrenheit)对华氏温度定义的贡献,所以称为 华氏温度 (Fahrenheit)。

摄氏 和华氏温度互转的公式如下:

摄氏 温度 = ( 华氏温度 – 32 )×5 / 9

华氏温度 = 摄氏 温度×( 9 / 5 ) + 32

程序实例ch4_20.py :请输入华氏温度,这个程序会输出摄氏温度。

执行结果

4-7-2 房屋贷款问题

每个人在成长的过程中可能都会经历买房子,第一次住在属于自己的房子中是一个美好的经历,大多数人在这个过程中可能需要向银行贷款。这时会思考需要贷多少钱?贷款年限是多少?银行利率是多少?然后可以利用上述已知资料计算每个月还款金额是多少,同时我们会好奇整个贷款结束究竟还了多少贷款本金和利息。在做这个专题分析时,已知的条件是:

贷款金额 :使用loan当变量

贷款年限 :使用year当变量

年利率 :使用rate当变量

然后需要利用上述条件计算下列结果。

每月还款金额 :使用monthlyPay当变量

总共还款金额 :使用totalPay当变量

处理这个贷款问题的数学公式如下:

在银行的贷款术语习惯使用年利率,所以碰上这类问题需要将所输入的利率先除以100,这是转成百分比,同时要除以12表示是月利率。可以用下列方式计算月利率,用monthrate当变量。

    monthrate = rate / (12*100)     # 第5行

为了不让求每月还款金额的数学式变得复杂,将分子(第8行)与分母(第9行)分开计算,第10行是计算每月还款金额,第11行是计算总共还款金额。

程序实例ch4_21.py :请输入贷款金额、贷款年限和年利率,程序会输出每月还款金额和总共还款金额。

执行结果

4-7-3 正五角形面积

在几何学中正五角形边长假设是s,其面积的计算公式如下:

上述计算正五角形面积需要使用数学中的PI,虽然可以使用3.14159代替,不过笔者此处先引导读者学习使用Python的数学模块,有关模块的概念将在第13章说明,此节将先教导读者使用,可以使用“import math”导入此数学模块。

程序实例ch4_22.py :请输入正五角形的边长s,此程序会计算此正五角形的面积。

执行结果

可以将上述概念扩充应用在正多边形面积计算,相关概念可以参考习题13。

4-7-4 利用经纬度计算地球各城市间的距离

地球是圆的,我们可以使用经度和纬度来了解地球上每一个点的位置。有了两个地点的经纬度后,可以使用下列公式计算彼此的距离。

    distance = r×acos(sin(x1)×sin(x2)+cos(x1)×cos(x2)×cos(y1-y2))

上述r是地球的半径约6371千米,由于Python的三角函数都是弧度(radians)单位,我们使用上述公式时,需使用math.radian( )函数将角度转成弧度。上述公式西经和北纬是正值,东经和南纬是负值。

经度坐标介于-180°~180°,纬度坐标是-90°~和90°,虽然我们习惯称经纬度,在用小括号表达时却是(纬度, 经度),也就是第一个参数放纬度,第二个参数放经度。

最简单的获得经纬度的方式是打开Google地图,其实打开Google地图后就可以在网址列看到我们目前所在地点的经纬度,选择地点就可以在网址列看到所选地点的经纬度信息,可参考下方左图。

由上图可以知道中国台北车站的经纬度是(25.0452909, 121.5168704),以上概念可以应用于查询世界各地的经纬度,上方右图是中国香港红磡车站的经纬度(22.2838912, 114.173166),程序为了简化小数取4位。

程序实例ch4_23.py :中国香港红磡车站的经纬度信息是(22.2839, 114.1731),中国台北车站的经纬度是(25.0452, 121.5168),请计算中国台北车站至中国香港红磡车站的距离。

执行结果 J5Ha4gJH26mgKDh0vLOcCdbra/vlUBg6OHX/H0CsZqnetnarls8kpSd5QFtc3/Bx

点击中间区域
呼出菜单
上一章
目录
下一章
×