2017-09-26 6 views
0

나는 항목 및 비용의 비용을 가져 와서 노트, 분기, 십진수,사용자가 제공 한 숫자를 정수 및 부동 소수점 형으로 캐스팅하는 방법

나는 프로그래밍에 익숙하지 않아, 나는 그것을 나눠 내려고 노력하고있다. StackOverflow를 살펴본 결과 math.modf(x) 메서드가 적합 함을 발견했습니다. 그러나, 나는 그것을 구현하는 데 어려움을 겪고있다.

changeyis not defined을 알려주세요.

감사

import math 

def changereturn(): 

    quarter = 0.25 
    dime = 0.1 
    nickel = 0.05 
    penny = 0.01 

    cost = float(raw_input('Please enter the cost of the item in USD: ')) 
    money = float(raw_input('Please enter the amount of money given in USD: ')) 

    change = money - cost 


    y = math.modf(change) 

    return change 
    return y 

답변

1

함수 (def) 할 수있는 유일한 return 한 번,하지만 파이썬은 당신이 결과를 튜플을 반환 할 수 있습니다.

import math 

def changereturn(): 
    quarter = 0.25 
    dime = 0.1 
    nickel = 0.05 
    penny = 0.01 

    cost = float(input('Please enter the cost of the item in USD: ')) 
    money = float(input('Please enter the amount of money given in USD: ')) 

    change = money - cost 

    y = math.modf(change) 

    return change, y 

print(changereturn()) 
+0

감사합니다. 어떻게 정수 부분을 변수에 할당하고 float 부분을 다른 변수에 할당 할 수 있습니까? 덕분에 – paulnsn

+1

그의'print (changereturn())'을 my'change, y = changereturn()'으로 대체하십시오. –

1

첫 번째 문제는 당신이 당신의 changereturn() 함수를 실행되지 않습니다 :

이 구현은 당신이 필요로 할 수있다. 두 번째 문제는 changereturn() 함수에서 두 개의 return 행입니다. y를 보내는 두 번째 함수는 절대로 실행되지 않습니다. 당신은 반환 (변경, Y)와 같은 프로그램을 실행할 수 있습니다 : 당신은 들여 쓰기를하지 않고 맨 아래에서이 둘 필요가

change, y = changereturn() 

print change 
print y 

. 개인적으로 나는 함수에서 여러 가지를 반환하는 것을 좋아하지 않습니다. 일반적으로 튜플로 붙잡고 각 부분을 인쇄하는 것이 좋습니다. 귀하의 질문은 Comp Sci 1 학년 학생을위한 과제물과 같아서 1) 당신을 위해 그것을 해결하고 2) 지나치게 복잡하게 만들고 싶지 않습니다.