2014-12-08 54 views
0

下面是我得到的錯誤:類型錯誤:浮子需要

Running...done. 
Traceback (most recent call last): 
    File "main.py", line 13, in <module> 
    print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay()) 
TypeError: a float is required 

奇怪的錯誤,我有什麼做不知道。我顯然是從Python開始的,因此遠程bug跟蹤很容易,減去這一點。這裏的代碼如下:

class Employee: 
    def __init__(self): 
     self.wage = 0 
     self.hours_worked = 0 

    def calculate_pay(self): 
     self.calculate_pay = (self.wage * self.hours_worked) 


alice = Employee() 
alice.wage = 9.25 
alice.hours_worked = 35 
print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay()) 

bob = Employee() 
bob.wage = 11.50 
bob.hours_worked = 20 
print('Bob:\n Net pay: $%7.2f' % bob.calculate_pay()) 
+0

你有沒有嘗試代碼,而浮點數?因爲我認爲它也不行。請嘗試使用正常數字。像9-35。你的功能沒有回報 – GLHF 2014-12-08 03:39:09

回答

1

變化

def calculate_pay(self): 
    self.calculate_pay = (self.wage * self.hours_worked) 

def calculate_pay(self): 
     self.calculate_pay = (self.wage * self.hours_worked) 
     return self.calculate_pay 

最初的一個不贖回,等於NoneType。儘管存儲到self.calculate_pay的值是浮點數,但不能像這樣引用它。

+0

修正了它。非常感謝。 :) – 3ncrypt3d 2014-12-08 03:40:30

4

你錯過了return聲明:

def calculate_pay(self): 
    self.calculate_pay = (self.wage * self.hours_worked) 
    return self.calculate_pay 
+0

固定,非常感謝。 :) – 3ncrypt3d 2014-12-08 03:41:06

2

要調用calculate_pay方法及其不返回任何東西,意味着它在默認情況下返回None

請從函數的返回值,並使用它,或者使用變量,而不是或方法

變量使用

alice.calculate_pay() 
print('Alice:\n Net pay: $%7.2f' % alice.calculate_pay) 

OR

從函數返回

def calculate_pay(self): 
    return (self.wage * self.hours_worked) 
0

的方法和實例變量更改爲不同的名稱,並返回statment在calculate_pay方法:

def calculate_pay(self): 
    self.calculated_pay = (self.wage * self.hours_worked) 
    return self.calculated_pay 
相關問題