如何修复代码将km / h转换为mph

时间:2015-05-15 18:28:00

标签: python

class conversion:
    def main(self):
        kmh = float(input("How many kmh are you going?"))
    def my_speed(kmh):
        mph = kmh * .621371
        print "You are going", round(mph), "miles per hour."
Conversion = converstion()
Conversion.main()
#check with "my_speed(kmh)"    
当我添加类时,

无法弄清楚代码出了什么问题,它说我的速度没有定义,但我把def放在它之前。

3 个答案:

答案 0 :(得分:1)

您通常不希望在类中请求输入来设置变量。此外,您缺少类的构造函数,它在python中是__init__。所有类都应该在Python中使用该方法

class conversion:

    def __init__(self, k):
        self.kmh = k
        self.mph = 0

    def __str__(self):
        return "You are going {0} miles per hour.".format(self.mph)

    def convert_kmh_to_mph(self):
        self.mph = round(self.kmh * .621371)


kmh = float(input("How many kmh are you going?"))
c = conversion(kmh)
c.convert_kmh_to_mph()
print c

答案 1 :(得分:0)

您应该将print命令放在my_speed()函数中,以便调用它,也可以调用my_speed()的{​​{1}}函数。我建议在课堂上再看一些例子,在http://www.codecademy.com有一些很好的基本例子

答案 2 :(得分:0)

你可以拥有一个__init__方法的类,该方法以kph的速度运行,并以mph的形式存储到成员变量,并使用__str__方法将其作为字符串返回。

如果您想获得好成绩,我还建议您使用正确的缩进和doc字符串。还记得许多python老师潜伏在这些网站上,所以如果你把其他人提供的解决方案作为解决方案,你可能会失败