0

我试图制作一个简单的理想气体计算器,但由于某种原因,我似乎无法让我的任何 if 语句返回任何值。

def Ideal():
    p = input("Pressure:")
    v = input("Volume:")
    n = input("Moles:")
    t = input("Temperature in K:")
    r = 8.31

    if p is None:
        y =(n*r*t)/v
        return y
    elif v is None:
        return(n*r*t)/p
    elif n is None:
        return (p*v)/(r*t)
    elif n is None:
        return (p*v)/(n*r)

我从上面的代码到这个

def input_float(prompt):
result = input(prompt)
if result:
    return float(result)
else:
    return None

def Ideal():
p = input_float("Pressure:")
v = input_float("Volume:")
n = input_float("Moles:")
t = input_float("Temperature in K:")
r = 8.31

if p is None:
    y =(n*r*t)/v
    print(y)
elif v is None:
    u = (n*r*t)/p
    print(u)
elif n is None:
    i = (p*v)/(r*t)
    print(i)
elif t is None:
    o = (p*v)/(n*r)
    print(o)
else:
    print("This should never happen")

理想的()

现在效果很好。但我猜有一种更简单的方法可以解决这个问题,因为我是来这里学习的,所以我很想在这里发表意见。

4

1 回答 1

1

input给你一个字符串。如果用户没有提供输入,你不会得到None——你会得到一个空字符串。您可能希望创建一个新函数来获取用户的输入,但None如果他们没有输入则返回,否则解析它:

def input_float(prompt):
    result = input(prompt)
    if result:
        return float(result)
    else:
        return None

然后您可以将input程序中的 s 替换为input_floats。

于 2013-05-08T05:16:12.990 回答