我试图做一个简单的理想气体计算器,但出于某种原因,我似乎无法得到我的任何if语句来返回任何值。当我运行我的程序时,我的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")
理想()
,现在,它的伟大工程。但我猜测有一个更简单的方法可以解决这个问题,因为我在这里学习我很想在这里听取意见。
Python是选择缩进,你可能想看看。 – paxdiablo 2013-05-08 05:14:41
'if'语句不是函数,所以它们不是为了“返回”任何东西;我相信你的意思是你的if语句永远不会评价为“真”。 (原因可以在icktoofay的回答中解释。) – 2013-05-08 05:17:55
它通常是一种很好的做法,即使if语句中的一个条件应该始终存在,避免在末尾放置一个else语句的情况下避免使用if语句。是真实的。你在'else'块中做什么可能取决于你的代码的细节(引发异常有时是合适的)。至少,做一些像'print(“这不应该发生”),这样你就可以看到是否有意想不到的事情发生(就目前情况而言)。 – Blckknght 2013-05-08 05:19:51