2014-12-08 2 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 

이상한 오류, 내가 무엇을해야하는지에 대한 아무 생각이 없다. 나는 분명히 파이썬으로 시작하고 있으며, 지금까지는 버그 추적이 쉽지 않았다. 초기 하나를 호출하지 않고 NoneType 동일

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 

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

답변

1

변경 : 여기에 아래의 코드입니다. self.calculate_pay에 저장된 값이 플로트 상태 일지라도이를 참조 할 수는 없습니다.

+0

해결되었습니다. 정말 고맙습니다. :) – 3ncrypt3d

4

당신은 return 문을 놓치고 : 당신은 calculate_pay 메소드를 호출하고 그 아무것도 반환하지

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

고정, 많은 감사합니다. :) – 3ncrypt3d

2

, 그것은 기본적으로 None을 반환 의미한다.

함수에서 값을 반환하고 그것을 사용하거나 대신 변수 또는 메소드

변수를 사용하여 함수의

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

또는

반환을 사용하십시오

def calculate_pay(self): 
    return (self.wage * self.hours_worked) 
0
다른 이름으로 방법 및 인스턴스 변수를 변경하고 calculate_pay 방법에 반환 한 Statment을

:

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