Python语言程序设计(六)

Python语言程序设计(六),第1张

1.(几何学:一个五边形的面积)编写一个程序,提示用户输入五边形顶点到中心距离r,然后算出五边形的面积,如下图所示。

计算五边形面积的公式是Area = 5×s×s/(4×tan(π/5)),这里的s是边长。边长的计算公式是 s =2rsin(π/5),这里的r是顶点到中心距离。

2.(几何学:大圆距离)大圆距离是球面上两点之间的距离。假设(x1,y1)和(x2,y2)是两点的经度和纬度,两点之间大圆距离可以利用以下公式计算:

d = radius * arccos(sin(x1) × sin(x2) × cos(x1) × cos(x2) × cos(y2-y1))

编写一个程序,提示用户输入地球表面两点经度和纬度的度数然后显示它们的大圆距离。地球的平均半径为6371.01km。注意:你需要使用math. radians函数将度数转化为弧度数,因为Python三角函数使用的是弧度。公式中的经纬度是西经和北纬。用负数表示东经和南纬。

3.(几何学:估算面积)从网站找到佐治亚州亚特兰大、佛罗里达州奥兰多、大草原佐治亚、北卡罗来纳州夏洛特的GPS位置,然后计算出这四个城市所围成的区域的大概面积。

4.(几何学:五角形的面积)五角形的面积可以使用下面的公式计算(s是边长)

Area = (5×s²)/ (4×tan(π/5))

编写一个程序,提示用户输入五边形的边长,然后显示面积。

5.(几何学:一个正多边形的面积)正多边形是边长相等的多边形吗,而且所有的角都相等。计算正多边形面积的公式是:

Area = (n × s²)/(4×tan(π/n))

这里的s是边长。编写一个程序,提示用户输入边数以及正多边形的边长,然后显示他们的面积。

6.(找出ASCII码的字符)编写一个程序,接收一个ASCII码值(一个0~127之间的整数),然后显示它对应的字符。例如:如果用户输入97,程序将显示字符a。

7.(随机字符)编写一个程序,使用time.time()函数显示一个大写的随机字符。

9.(金融应用程序:工资表)编写一个程序,读取下面的信息,然后打印一个工资报表。

雇员姓名(例如:史密斯)

一周工作时间(例如:10)

每小时酬报(例如:9.75)

联邦预扣税率(例如:20%)

州预扣税率(例如:9%)

10.(Turtle显示统一码)编写一个程序,显示希腊字母。αβγδεζηθ

11.(反向数字)编写一个程序,提示用户输入一个四位整数,然后显示颠倒各位数字后的数。

 在之前的推文 《轻松获取通行数据——cntraveltime命令介绍》 里,我们介绍了用cntraveltime命令来获取两地之间的交通时间和交通路程,那么如果我们从地理的角度出发想要得到两地之间的直线距离该怎么做呢?根据中学的数学物理知识,在已知地球半径、两个地点的经纬度的情况下,列一个计算公式是可以计算出在地球表面两地之间的直线距离的,但列式子未免过于麻烦,这个由懒人驱动的世界就开发了一个命令—geodist—来帮助我们实现这个功能。给我几列经纬度数据,还你一份直线距离。

 该命令的语法如下:

 如果纬度/经度坐标是数值变量:

geodist lat1 lon1 lat2 lon2 [if] [in] , generate(new_dist_var) [options]

 该命令有这样几个选项:

 (1)miles:指定以英里为单位报告距离;

 (2)ellipsoid(a,f):自定义椭球体参数(a,f),a为一个椭球体的长半轴,f为短半轴,长半轴是地心到赤道的球半径长度,短半轴是地心到两级的球半径长度。这些是以米为单位的半长轴的长度(即到赤道的半径)和扁平率。具体的计算方法可参考: http://www.movable-type.co.uk/scripts/latlong-vincenty.html ;

 (3)maxiter(#):表示执行计算椭圆距离时的最大迭代次数,默认值为25。请注意实际上所有情况都需要少于10次迭代;

 (4)sphere:计算球体的大圆距离。默认地球近似为球体,其平均半径为6371公里。具体的计算方法可参考: http://www.movable-type.co.uk/scripts/latlong.html ;

 (5)radius:在计算大圆距离时,指定球体的半径(以千米为单位)。

 下面我们通过一个具体的例子来说明。首先要安装这个命令:

 结合爬虫俱乐部之前开发的 cngcode 命令,我们先来得到中南财经政法大学和武汉大学的经纬度。首先输入两所学校的详细地址,包括省、市、区、校名:

 接下来使用 cngcode 得到两个地点的经纬度:

 然后就可以使用 geodist 用得到的经纬度获取两地之间的距离:

 看到距离是7.2568235公里。与地图软件结果基本一致:

 接下来我们用 cntraveltime 命令来看一下交通距离:

 得到结果,以驾车为交通方式的路程为11103米,与苹果手机自带的地图软件对比也是基本一致的:

 以上就是本文对geodist命令的介绍了,感兴趣的一起动手试试吧!

大圆距离(英语:Great-circledistance)指的是从球面的一点A出发到达球面上另一点B,所经过的最短路径的长度。

大圆距离(英语:Great-circledistance)指的是从球面的一点A出发到达球面上另一点B,所经过的最短路径的长度。一般说来,球面上任意两点A和B都可以与球心确定唯一的大圆,这个大圆被称为黎曼圆,而在大圆上连线这两点的较短的一条弧的长度就是大圆距离。若这两点和球心正好都在球的直径上,则过这三点可以有无数大圆,但两点之间的弧长都相等,且等于该大圆周长的一半,r是球的半径。由于地球类似球体,地球上任何两点沿球面的最短距离都可以通过大圆距离的公式估算的出,这在航空和航海上都有很大作用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11788619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存