2012-02-27 5 views
1

나는 초보 프로그래머이고 여기 내 프로그램은 지금까지입니다 :어떻게 십진수를 # 일 및 일로 분해 할 수 있습니까?

def getYearsandDays(): 
     c = eval(input("Enter a number: ")) 
     d = c // 1 
     e = (c - d) * 365 
     f = e // 1 
     return f,d 
     print(d , "years and", f, "days") 

    () 

예를 들어, 그 C가 1.34입니다 가정합니다. 이것을 정수로 변환하면 1 년 = d가됩니다. 이제 1.34 - 1은 .34를줍니다. 356을 곱하면 124.1 = e가됩니다. 정수로하면 124 일 = f가됩니다. 따라서 1.34 년은 1 년 (d), 124 일 (f)입니다.

6 years and 1 day 
1 year and 137 days 
67 days 

대신에 :

6 years and 1 days 
1 years and 137 days 
0 years and 67 days 

내가 수도 같은데요

는 이미 어떻게이 같은 출력을 얻을 것을 나는이 붙어 있기 때문에 내 인쇄 기능이 잘못 알고 내 정수를 문자열로 다시 변환하고 If-Then 문을 작성해야하지만 100 % 확실하지는 않습니다.

+1

당신이'은'return' 후 print' 때문에이 코드는 작동하지 않습니다 도움이

희망. 마지막 줄의'()'는 무엇을 의미합니까? –

답변

4

이 내가 할 것 인 것이다 :

def years_and_days(): 
    # Use input instead of raw_input if you're using Python 3.x 
    time = float(raw_input('Enter a number: ')) 
    years = int(time) 
    days = int((time - int(time)) * 365) 
    if years: 
     print years, 'years' if years > 1 else 'year', 
    if days: 
     print days, 'days' if days > 1 else 'day' 

사용법 :

>>> years_and_days() 
Enter a number: 3 
3 years 
>>> years_and_days() 
Enter a number: 1.34 
1 year 124 days 
>>> years_and_days() 
Enter a number: 0.32 
116 days 
0

C가 입력되면이 : 는 MOD 1 c를 할 수있는 ... 그런 당신에게 소수를 줄 것이다.
정수를 얻으려면 c-cmod1이 필요합니다. 나머지 계산은 다음과 같이 작동해야합니다 ...

mod는 기본적으로 모듈러스에 대한 약자입니다. 이것은 기본적으로 나머지를 계산하는 방법입니다. 5mod2는 5/2 또는 1의 나머지 부분입니다.

사용중인 언어가 확실하지 않지만 Google에서 모듈러스와 언어 이름을 검색하면 자신이 원하는 언어를 찾을 수 있습니다. 찾고.

def getYearsandDays(): 
     c = eval(input("Enter a number: ")) 
     d = c - c%1 //years 
     e = (c -d) * 365 //days in decimal format 
     f = e - e%1 // days in integer format...you probably would get away with just rounding here too... 
     return f,d 
     print(d , "years and", f, "days") 

    () 
+0

BTW는 이것이 파이썬임을 깨달았습니다. 이 예제에서 계수에 % 기호를 사용하십시오. – SimaPro

관련 문제