2016-10-09 2 views
-3

주어진 입력이 윤년인지 아닌지 계산하는 프로그램을 만들고 있습니다. Anaconda Shell이 ​​설치된 Windows 10에서 Python 2.7을 사용하고 있습니다. 그것은 바보 같은 프로그램이고 왜 나는이 오류가 발생하는지 이해하지 못합니다. 온라인에서이 특정 프로그램에 대한 몇 가지 해결책이 있지만 내 버전 작업을하고 싶습니다. 도와주세요!"Int"개체가 윤년 프로그램에 대해 반복 가능하지 않음

"TypeError : 'int'객체가 반복 가능하지 않습니다." Google 검색을 시도하고 일부 이전 답변을 살펴 보았지만 혼동 스럽습니다.

def sort_year(user_input): 
    for i,j in range(0,9): 
     if user_input == [ij00]: 
      leap_yr1(user_input) 
     else: 
      leap_yr2(user_input) 

def leap_yr1(user_input): 
    if user_input % 400 == 0: 
     print("The given year is a leap year") 
    else: 
     print("The given year is not a leap year") 

def leap_yr2(user_input): 
    if user_input % 4 == 0: 
     print("The given year is a leap year") 
    else: 
     print("The given year is not a leap year") 

print("Which year do you want to check?: ") 
user_input = int(raw_input()) 
sort_year(user_input) 
+3

(여기 % 기능 modulo 수단). 'ij00'이 무엇을 기대합니까? – vaultah

+1

공정하게,'int' 객체는 * 어떤 * 프로그램, 윤년이나 다른 것에 대해서 반복 가능하지 않습니다. – jonrsharpe

+1

두 가지 기능을 사용하기보다는 연도 % 4! = 0 : false를 반환하면 elif 연도 % 100! = 0 : true를 반환하고 그렇지 않으면 연도 % 400 == 0을 반환 할 수 있습니다. - 그건 너의 문제가 아니야. –

답변

2

난 당신이

for i in range(0,9): 
    for j in range(0,9): 

를 작성하려고 생각하지만 난 당신이 그렇게 당신이 for 필요하지 않습니다 user_input의 마지막 두 자리 숫자를 확인하려고 생각합니다. number는 끝 00있는 경우

number % 100 == 0 당신은 범위 (0, 9) '2- 튜플'의 각 값을 압축 해제하려

def sort_year(user_input): 
    if user_input % 100 == 0: 
     leap_yr1(user_input) 
    else: 
     leap_yr2(user_input) 
+0

고마워요, 그게 도움이. 나는 아주 어리석은 실수를 저지르고 있었다. –

관련 문제