Python代码不会执行。没有错误显示

时间:2018-05-24 13:10:51

标签: python

我不知道我的代码有什么问题。它不会执行。什么都没发生,没有错误发生。我无法弄清楚。 如果有人能告诉我我做错了什么,请这样做,我将不胜感激。

class Money (object):
    def __init__ (self, euro, cent):
      self.euro = euro
      self.cent = cent

    def __str__ (self):
        if self.cent >= 100:
            r = self.cent / 100
            self.cent = self.cent % 100
            self.euro = self.euro + r
            return ("%d EUR & %d cents") % (self.euro, self.cent)
        else:
            return ("%d EUR & %d cents") % (self.euro, self.cent)

    def changeCent (self):
        #100 c = 1 E
        cents = self.euro * 100
        self.cent = self.cent + cents
        return self.cent

    def changeSum (self, euros):
        #1 E = 100 c
        euros = self.cent / 100
        self.euro = self.euro + euros
        return self.euro

    def debt (self, years, rate):
        value = Money()
        multiply = rate * years * 12 / 100
        value.euro = self.euro * multiply
        value.cent = self.cent * multiply
        if value.cent > 100:
            euro_ = value.cent / 100
            value.cent = value.cent - 100
            value.euro = value.euro + euro_
        return value

def main():
    x = Money()
    x.euro = int(input("Type in your EURO ammount: \n"))
    x.cent = int(input("Type in your CENT ammount: \n"))
    print (x)

5 个答案:

答案 0 :(得分:4)

在python中,main不是特殊功能(例如,与C不同)。

您需要在脚本中明确调用main()

一个常见的习惯用法是只在你的文件作为脚本运行(而不是导入)时才这样做:

if __name__ == "__main__":
    main()

请参阅the documentation了解其工作原理

答案 1 :(得分:2)

您定义了主要功能,但您从不称呼它。

main()添加到代码的末尾。

然后运行但有错误,修复错误,将main()功能更改为

def main()
    euro = int(input("Type in your EURO ammount: \n"))
    cent = int(input("Type in your CENT ammount: \n"))
    x = Money(euro, cent)
    print (x)

完整的工作代码:

class Money (object):
    def __init__ (self, euro, cent):
      self.euro = euro
      self.cent = cent

    def __str__ (self):
        if self.cent >= 100:
            r = self.cent / 100
            self.cent = self.cent % 100
            self.euro = self.euro + r
            return ("%d EUR & %d cents") % (self.euro, self.cent)
        else:
            return ("%d EUR & %d cents") % (self.euro, self.cent)

    def changeCent (self):
        #100 c = 1 E
        cents = self.euro * 100
        self.cent = self.cent + cents
        return self.cent

    def changeSum (self, euros):
        #1 E = 100 c
        euros = self.cent / 100
        self.euro = self.euro + euros
        return self.euro

    def debt (self, years, rate):
        value = Money()
        multiply = rate * years * 12 / 100
        value.euro = self.euro * multiply
        value.cent = self.cent * multiply
        if value.cent > 100:
            euro_ = value.cent / 100
            value.cent = value.cent - 100
            value.euro = value.euro + euro_
        return value

def main():
    euro = int(input("Type in your EURO ammount: \n"))
    cent = int(input("Type in your CENT ammount: \n"))
    x = Money(euro, cent)
    print (x)

main()

答案 2 :(得分:2)

获得结果的pythonic方法是在文件中添加以下行:

if __name__=='__main__':
    main()

它会检查您是否将脚本作为主脚本调用。 目前您只定义函数main,但您从不调用它。

答案 3 :(得分:1)

您应该运行main()函数

答案 4 :(得分:0)

执行底部的函数类型main()。除了调用函数之外,你几乎做了所有事情。

还有一个错误

你的构造函数  def __init__ (self, euro, cent):需要两个参数。你没有传递任何价值。

将此更改修复为:

def __init__ (self, euro=0, cent=0):     

eurocent

分配默认值0