gpt4 book ai didi

python - 为什么这段 Python 代码给我错误的答案?

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:09 25 4
gpt4 key购买 nike

我写了一个简单的 Python 代码来求解某个水力公式(Manning's equation):

import math

def mannings(units,A,P,S,n):
if units=='SI':
k=1.0
elif units=='US':
k=1.49
R=A/P
V=(k/n)*(math.pow(R,(2/3)))*(math.sqrt(S))
Q=A*V
return R,V,Q

在上面的代码中,速度 V 是根据 knRS。然后使用速度乘以面积 A 来计算流量 Q。用户输入单位约定、APSnk是根据单位约定决定的。

当我使用 mannings('US',1.0618,2.7916,0.02,0.015) 运行函数时,我得到 (0.38035535176959456, 14.047854719572745, 14.916012141242343)R 值与电子表格中计算的 R 相匹配,但 VQ 相差甚远。实际的 V 应该是 7.374638178Q 应该是 7.830634155

如果有人能告诉我这里出了什么问题,那就太好了。这是一个非常简单的公式,我猜它应该很容易工作。

最佳答案

您的问题是 2/3 是整数除法,因此计算结果为 0。您希望 2.0/3 强制进行浮点除法。或者在文件顶部包含 from __future__ import division 以在 Python 2.x 中使用 Python 3 风格的除法。

假设您不使用 __future__ 解决方案,您还需要将 R = A/P 编写为例如R = float(A)/P 因为否则,如果 AP 都是整数,R 也会是一个整数。

关于python - 为什么这段 Python 代码给我错误的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com