2016-07-04 4 views
1
degrees = float() 
fahrenheit = float() 
celsius = float() 
meters = float()#decs. 
feet = float() 
selection = str() 

def main():#main program 
    print("Here are your choices: \n C = celsius \n M = meters \n E = exit") 
    selection = input("Enter your selection") 
    while selection != "e": 
     if selection == "c": 
      degrees(fahrenheit,celsius) 
     if selection == "m": 
      meters(feet,meters) 
     else: 
      print("Wrong input") 
     selection = input("Enter your selection") 
    print("Thank you for using this program") 

main() 

def degrees(fahrenheit,celsius):#temperature subprogram 
    fahrenheit = int(input("Enter temperature in fahrenheit")) 
    celsius = (5/9)*(fahrenheit) - 32 
    print(fahrenheit , " degrees = " , celsius , " degrees celsius.") 


def meters(feet,meters):#distance subprogram 
    feet = int(input("Enter measurement in feet")) 
    meter = 0.305 * feet 
    print(feet , " feet = " , meter , " meters.") 

다른 모듈을 호출하는 줄 13 및 15 줄에 오류가 나타납니다. 다른 게시물을 읽는 것으로부터, 그들은 곱셈을 위해 * 대신 괄호를 사용하는 것이 원인 일 수 있다고 말합니다. 그러나 나는 그것이 어디서 일어날지를 보지 못합니다.Python에서 Float 객체를 호출 할 수 없습니다.

답변

2

이름 충돌이 있습니다 : degreesmeters은 부동 소수점으로 정의 된 다음 함수로 정의되었습니다. float 이름은 모듈의 나중에 정의 된 함수 대신에 호출됩니다. 수레

당신은 다른 무언가에 변수의 이름을 변경하여이 문제를 해결할 수


호출 할 수 없습니다. 그리고 함수 main을 모듈의 맨 아래로 이동하십시오. 이런 식으로 변수의 이름은 함수 이름과 구별되며 함수는 main에서 호출해야 할 때까지 이미 정의되어 있습니다.

+0

두 기능 모두에 사용되지 않은 매개 변수가 있으며 나중에 함수 본문에 할당됩니다 – slezica

관련 문제