私はこれを理解するのに少し苦労しています。私はPythonが初めてで、入門クラスの割り当てを行っています。基本的には、自転車のライダーによって生成される電力を計算し、コードを追加して目的の出力を得るための古い割り当てを使用しています。とにかく、これは私がこれまでに持っているものです:
def powerPerSec():
M = float(input("What is the mass of the rider in kg?"))
Mb = float(input("What is the mass of the bike in kg?"))
V = float(input("What is the velocity of the rider in m/s?"))
Cfd = float(input("What is the coefficient of drafting?"))
G = 9.8
K = 0.18
Cr = 0.001
Pair = K * Cfd * (V**3)
Proll = Cr * G * (M + Mb) * V
return int(Pair + Proll)
def main():
print ("The rider is generating", powerPerSec(), "watts.")
main()
さて、問題の次の部分は、「毎回 4 kg ずつ増加する質量で、ライダーの 5 つの異なる質量値に対して powerPerSec を呼び出す」ことです。説明によると、すべての計算と関数呼び出しはメイン関数で行う必要があります。私を混乱させているのは、powerPerSec 関数をほとんど排除せずに、main 関数ですべての計算を行うにはどうすればよいかということです。main 関数内から powerPerSec 関数のローカル変数を変更するにはどうすればよいですか? クラスを作成するとこれが行われますか? 私の教授の質問の言い方は、ちょっとややこしくて曖昧です。どんな助けでも大歓迎です!
編集_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
わかりましたので、これでかなり理解できたと思います。ループと入力に問題があったので、ちょっとシャッフルしました。これが私が最終的に得たものであり、望ましい結果が得られています。質問の文言が非常に紛らわしいので、これが私の教授が望んでいるものであると100%確信しているわけではありませんが、期待どおりに機能しているので満足しています.
def powerPerSec(M, Mb, V, Cfd):
G = 9.8
K = 0.18
Cr = 0.001
return (K * Cfd * (V**3) + Cr * G * (M + Mb) * V)
def main():
M = float(input("What is the mass of the rider in kg?"))
Mb = float(input("What is the mass of the bike in kg?"))
V = float(input("What is the velocity of the rider in m/s?"))
Cfd = float(input("What is the coefficient of drafting?"))
n=0
while n < 5:
Psec = powerPerSec(M, Mb, V, Cfd)
n = n + 1
print ("A rider with a mass of", M , "kg is generating %.2f" % Psec , "watts.")
M = M + 4
main()
ヒントをありがとう、皆さん。