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 を s に置き換えることができますinput_float

于 2013-05-08T05:16:12.990 に答える