[wecode 3일차] - 조건문

hyuckhoon.ko·2020년 5월 27일
0

What I learned in wecode

목록 보기
31/109

1. 조건문

  1. if
  2. if, else
  3. if, elif, else



1) if 문

user_input = input("오늘의 요일을 입력하세요 : ")
burning_day = "금요일"
if user_input == burning_day:
    print(f'7시까지 강남역 10번출구에서 만나자')

user_input에 문자열 "금요일"이 입력되어야만,
if 문 아래의 코드가 실행이 된다.
아래 실행결과를 보자.

단일 if 문의 특징은
조건이 맞지 않은 경우, 해당 조건문을 건너뛴다는 것이다.(즉, 실행되지 않음)
그래서 만약, "월요일"이 입력되면 print함수가 실행되지 않고 프로그램이 종료된다.


2) if, else 구문

if 조건문이 참이 아닐경우, else 부분 아래의 코드가 실행된다.
else에는 따로 조건을 기입하지 않는 것이 특징이며,
else:else: 와 같이 작성한다.

user_input = input("오늘의 요일을 입력하세요 : ")
burning_day = "금요일"
if user_input == burning_day:
    print(f'7시까지 강남역 10번출구에서 만나자')
else:
    print(f'무슨 소리야. 일이나 더 하자')

오늘이 "금요일"이 아니라면(if 조건문을 건너뛰고)
else 구문으로 넘어가고 무조건무조건 else문이 실행된다.



3) if, elif, else 구문

논리 구조를 다양하게 구성할 필요가 있을 때 활용된다.
elif를 여러번 사용하여 논리적 빈틈을 채워나가야 하는 것이 특징이며,
이번에도 else엔 조건을 작성하는 부분이 필요하지 않다.

조건문을 활용한 프로그램을 한 번 만들어보자.
2019년을 기준으로 입력된 날의 다음날의 날짜를 출력하는 프로그램이다.
예시) 2019년 12월 31일이 입력되면 -> 2020년 1월 1일 출력

month = int(input())
day = int(input())


#2019년 : 윤달 아님(2월이 28일까지 있음)
if month in [1, 3, 5, 7, 8, 10, 12] and day == 31:
  month += 1
  day = 1
  if month > 12:
    month -= 12
    year = 2020
elif month in [4, 6, 9, 11] and day == 30:
  month +=1
  day = 1
  year = 2019
elif month == 2 and day == 28:
    month += 1
    day = 1 
else:
  day += 1

print(f'{month}')
print(f'{day}')



전체적인 구조는 if, elif, else 지만
if 문 안에(들여쓰기) 또 하나의 if문이 있는 것을 알 수 있다.

if month in [1, 3, 5, 7, 8, 10, 12] and day == 31:
  month += 1
  day = 1
  if month > 12:
    month -= 12
    year = 2020

1, 3, 5, 7, 8, 10, 12월의 최대 일수는 31일이지만,
예를 들어, 12월 31일이 입력된 경우
month +=1 이 실행되므로
13월 1일이라는 결과가 나온다.

그런 이유로, if 문을 한번 더 추가하여 이러한 문제를 해결했다.

또한, 2월의 경우 28일까지이므로
(2019년은 윤년이 아님)
elif 조건문을 한번 더 사용했다.

elif month == 2 and day == 28:
    month += 1
    day = 1 

0개의 댓글