파이썬에서는 &&
와 ||
대신 and
와or
를 사용한다.
처음에 이걸 모른 채로 코드를 작성하니 오류가 나와서 크게 당황했었다.
if 조건문에서 and와 or는 너무 자주 쓰면 매우 복잡해지기에
너무 길게 쓰지 않는 게 낳다.
월(month)와 일(day), 2가지를 input 값으로 받습니다.
2019년의 해당 월과 일의 다음 날의 월과 일을 출력해주세요.
예를 들어, month 는 3이고 일은 31이면 2019년 3월 31일의 다음날은 4월 1일 임으로 다음과 같이 출력이 되면 됩니다 (월 과 일을 각각 다른 줄에 출력 해주세요).
2019년에서
1, 3, 5, 7, 8, 10월은 끝나는 날이 31일,
4, 6, 9, 11월은 끝나는 날이 30일,
2월은 끝나는 날이 28일이다.
month + 1
+1일
을 하고,day + 1
하면 된다.if (month == 1, 3, 5, 7, 8, 10) and (day == 31):
print(month + 1)
print(1)
elif (month == 4, 6, 9, 11) and (day == 30):
print(month + 1)
print(1)
elif (month == 2) and (day == 28):
print(month + 1)
print(1)
elif (month == 12) and (day == 31):
print(1)
print(1)
if month == 13:
print(1)
print(1)
else:
print(month)
print(day + 1)
아래 코드를 입력하지 않으면
12월 31일 다음 날이 13월 1로 나타난다. 왜 그럴까?
if month == 13:
print(1)
print(1)
if ((day == 30) and (month == 4 or month == 6 or month == 9 or month == 11)
or (day == 28) and (month == 2)
or (day == 31)):
month += 1
day = 1
else:
day += 1
if month == 13:
month = 1
print(month)
print(day)
or
대신 ,
를 써도 된다.### 일일이 반복하는 수고로움이 있었다.
if (month == 1 or month == 3 or ...)
### 그런데 아래처럼 해도 성립이 된다.
if month == 1, 3, 5, 7, 8, 10