Python中文
首页
教程
问答
标签
搜索
登录
注册
Python While循环不使用输出作为下一个循环的输入
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在python中开发一个函数,它使用GPS坐标,使用Vincenty的公式计算距离。第一步是使用while循环迭代一组方程直到收敛。”lam”是我输出并反馈到while循环中的变量。while循环第一次运行,之后每次迭代的输出与第一次完全相同。循环每次都使用lam的初始值。它应该以lam输出作为新的输入,对吗?在</p> <pre><code>import math location=[-83.55176667, -83.548975, 40.30421944, 49.30228889] def distance(points): """ points is a list containing 2 latitude/longitude points in this order: [lon1, lon2, lat1, lat2]. This function determines distance between those 2 points.""" L1, L2, theta1, theta2=points[0],points[1],points[2],points[3] f=1/298.257223563 L=L2-L1 lam=L outs=[] U1=math.atan((1-f)*math.tan(theta1)) U2=math.atan((1-f)*math.tan(theta2)) while lam > .001: sin_sigma=((math.cos(U2)*math.sin(lam))**2+ (math.cos(U1)*math.sin(U2)- math.sin(U1)*math.cos(U2)*math.cos(lam))**2)**0.5 cos_sigma=math.sin(U1)*math.sin(U2)+math.cos(U1)* math.cos(U2)*math.cos(lam) sigma=math.atan2(sin_sigma,cos_sigma) sin_alpha=(math.cos(U1)*math.cos(U2)*math.sin(lam))/sin_sigma cos2_alpha=1-(sin_alpha)**2 cos2sigm=cos_sigma-((2*math.sin(U1)*math.sin(U2))/cos2_alpha) C=(f/16)*cos2_alpha*(4+f*(4-3*cos2_alpha)) lam=L+(1-C)*f*sin_alpha*(sigma+C*sin_sigma* (cos2sigm+C*cos_sigma*(-1+2*(cos2sigm)**2))) outs.append(lam) print(lam) print('') return outs outs=distance(location) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>实际上,它是使用新值<code>lam</code>的</em>。您可以通过在循环的开始和结束处打印<code>id(lam)</code>来检查自己。在</p> <p>问题是,由于某些原因,您的函数稳定在<code>lam=0.0027964244626017456</code>的值上,因此循环永远不会退出。在</p> <p>在一个SO问题中调试这个算法太难了,但是请尝试查找该算法并检查您是否在某个地方键入了错误。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
8 回答
如何在乒乓球游戏中阻止球
7 回答
如何在乘法和模中不乘空间?
1 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
8 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
10 回答
如何在事件wxWidgets中传递自定义数据
7 回答
如何在事件中使用lambda i=i?
10 回答
如何在事件中心只接收最近的数据
10 回答
如何在事件发生之前保持云函数运行?
8 回答
如何在事件发生后使页面重定向到同一页面
9 回答
如何在事件回调之间保持python生成器的状态
9 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
1 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
5 回答
如何在事件处理程序中访问外部对象?
10 回答
如何在事件循环中将协程打包为正常函数?
2 回答
如何在事件循环之外运行协同程序?
5 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
5 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
3 回答