使用类在函数内的循环中操作一个变量

时间:2013-10-04 08:06:09

标签: python

我很难解决这个问题。我是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()

现在,问题的下一部分是,“为骑手调用powerPerSec 5个不同的质量值,质量每次增加4公斤。”指令说所有计算和函数调用都需要在main函数中完成。令我困惑的是如何在主函数中完成所有计算而不必消除powerPerSec函数?如何从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()

感谢您的提示,伙计们。

0 个答案:

没有答案