Python处理公式与预期不同

2024-09-30 12:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个供私人使用的潜水表,在计算EAD时遇到了一个错误

def calculate_ead(self):
    nitrogen = 100 - self.mix
    EAD = (self.depth + 10) * nitrogen / 0.79 - 10
    self.depth = int(EAD)

这个计算给出了一个非常高的数字(大约几千)。我从this站点得到了公式,在feet部分的计算中得到了公式。当配合比大于21时,计算得出的数值应低于深度。你知道吗

我对深度和其他方面的认识:

def __init__(self, d=35, t=30, m=21, p=1.6):
        self.depth = int(d)  # Depth
        self.time = int(t)  # Time
        self.mix = int(m)  # Mix (Oxygen integer)
        self.max_po2 = float(p)

在这种情况下,以氧气的百分比混合,因此当用100减去它时,应给出此公式的氮气分数EAD=(深度+10)×氮气分数/0.79−10

告诉我我做错了什么? 来自interactive shell的样本测试:

depth = 90
mix = 36
nitrogen = 100 - mix
EAD = (depth + 10) * nitrogen / 0.79 + 10
EAD
8111.26582278481

预期产量:

>>>depth = 90
>>>mix = 36
>>>nitrogen = 100 - mix
>>>EAD = (depth + 10) * nitrogen / 0.79 + 10
>>>EAD
67

数字格式: 自深度是一个自然数(25,30,35) 自混合是一个自然数(30,45,60)


Tags: selfdef错误私人数字分数公式int
2条回答

在你提供的链接上, 当量空气深度可计算为英尺深度,如下所示:

EAD = (Depth + 33) × Fraction of N2 / 0.79 − 33

应用你的数字

depth = 90
mix = 36
nitrogen = float(100 - mix) /100 #Fraction of N2
EAD = (depth + 33) * nitrogen / 0.79 - 33
print EAD

将给出正确的结果。你知道吗

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
66.6455696203
>>> 

如果要使用N2的分数(%),请尝试以下代码。你知道吗

def calculate_ead(self):
    nitrogen = (100 - self.mix)/100
    EAD = (self.depth + 10) * nitrogen / 0.79 - 10
    self.depth = int(EAD)

相关问题 更多 >

    热门问题