본문 바로가기

💻프로그래밍/python

[파이썬 독학] 8. 조건문 (if문 예제)

반응형

1. 조건문 (if문)

조건문은 어떠한 조건을 주고 이 조건에 맞는 상황을 수행하도록 하는 것이다. if문은 우리 생활에서 일어나는 많은 경우에 대입해볼 수 있다. 예를 들어, 오늘 비가 오면 (조건) 우산을 가져가고(수행) 비가 오지 않으면 (조건) 우산을 가져가지 마라(수행) 라는 조건문이 있고, 오늘 비가 온다고 가정했을 때 우리는 우산을 가져가는 것을 수행할 것이다. 조건문은 데이터 전처리 시 아주 많이 쓰이기 때문에 잘 알아두는 것이 필요하다.

 

 

 

2. if문의 기본 구조

if문의 기본 구조는 다음과 같다.

 

 

 

 

그렇다면 아래의 문장을 코드로는 어떻게 표현해야 할까?

 

if-else를 사용하여 코드를 작성하면 되는데, 해당 조건을 만족(True)하면 if에 해당하는 부분을 수행하고, 만족하지 않으면 else부분을 수행하게 된다.이때 if문 없이 else만 단독으로 사용할 수 없다.

 

 

 

주의사항

 

1) 콜론(:)

SyntaxError : invalid syntax

if와 else문의 끝에는 꼭 콜론(:)으로 마무리해주어야 한다. 위의 코드를 보면 if 문의 끝에 콜론이 없기 때문에 에러가 발생한 것을 알 수 있다.

 

 

 

2) 들여 쓰기 (indentation)

IndentationError : expected an indented block

if문을 만들 때 주의할 점은 if문과 else문에 속하는 모든 문장들을 들여 써야 한다. 들여 쓰기로 문장의 종속관계를 표현하기 때문에 꼭 들여 쓰기를 해주어야 하며 들여 쓰는 간격도 모두 일치시켜야 한다.  위의 코드를 보면, if문에 해당하는 (즉 if문이 True일 때 수행되는 문장들)은 들여 쓰기를 해주었지만, else문에 속하는 문장(print('우산을 가져가지마라'))는 들여쓰기를 해주지 않았기 때문에 에러가 발생했다.

 

 

 

 

3. 여러 가지 조건

조건문에서 조건은 여러 방법으로 나타낼 수 있다. 저번 시간에 정리한 비교 연산자와 not, and, or의 개념은 이곳에서 다시 확인하고 (클릭) 이번에는 in에 대해 알아보고자 한다.

 

# in

in은 ~가 *안에 있나요?라는 것을 표현할 때 사용한다.

이때 안에 포함되어있다면 True, 그렇지 않다면 False를 출력하게 된다.

  in   not in 
a in 리스트 a not in 리스트
a in 튜플 a not in 튜플
a in 문자열 a not in 문자열

위와 같이 in은 리스트, 튜플, 문자열에 사용할 수 있고, a in apple이라는 것은 a가 apple 중에 있나요?라는 의미이다. 이때 apple의 철자 안에 a가 포함되어 있으므로 출력된 값이 True가 나온 것을 알 수 있다.

 

 

 

# pass

그렇다면 굳이 무엇인가를 수행하지 않고 그냥 넘기고 싶을 때는 어떻게 해야 할까? 이때는 수행할 문장에 pass를 적어주면 된다.

 

 

 

 

4. 여러 가지 조건을 판단할 때는 elif

우리는 지금까지 if-else의 표현방법과 예시를 알아봤다. 그런데 현실에서는 훨씬 더 다양한 조건들을 한 번에 생각해봐야 할 순간들이 생긴다. 이때 사용하는 것이 elif이다. elif는 개수의 제한이 없기 때문에 많은 조건들을 한 번에 고려해야 할 때 유용하게 쓰인다. 예를 들어, 엄마가 '슈퍼에 가서 딸기가 있으면 딸기를 사 오고, 없으면 바나나를 사오고 둘 다 없으면 그냥 와!'라는 조건을 건 심부름을 시켰다고 생각해보자. 그럼 이것을 어떻게 코드로 작성해야 할까? 

 

코드를 작성하기 전에 먼저 생각의 흐름을 정리해보면 쉽게 이해할 수 있다. 위의 알고리즘을 코드로 작성해보자.

 

위의 코드를 보자면, 먼저 변수 슈퍼에 ['딸기', '바나나']로 하나의 리스트를 선언하였다. (즉 슈퍼에 딸기와 바나나가 있다는 의미) 그 뒤, if '딸기' in 슈퍼 (딸기가 슈퍼에 있다면) print('딸기를 산다')해!라고 했을 때 슈퍼에 딸기가 있었기 때문에 '딸기를 산다'가 출력되었음을 알 수 있다. 여기서 생각해봐야 할 것은 슈퍼에 '바나나'도 있었는데 그 부분(elif)은 어떻게 실행되는 건지 의문이 들 수 있다. 이때 맨 위의 코드부터 하나씩 실행이 되는데 위에서 처리가 끝났다면 그 밑에 코드들은 무시되고 바로 출력된다. 

 

 

 

 

 

5. if문 활용 (성적 산출 프로그램 만들기)

이번에는 마지막으로 if문을 활용하여 성적 산출 프로그램을 만들어보자. 성적 산출 프로그램에 조건을 먼저 설정해보자면, 

90~ 100점은 A / 80~ 89점까지는 B / 70 ~ 79점 까지는 C / 그 밑으로는 F를 출력하고 싶다. (조건)

맨 처음으로 Input함수를 이용하여 사용자가 학점을 입력할 수 있게 입력창을 만든다. 그 후 그것을 전체 int( )로 감싸서 입력값을 숫자 형태로 받는다. 그 뒤 if, elif, else를 사용하여 각 조건들과 그에 종속되는 수행할 문장들을 적어주면 된다. 이때 '성적을 입력하세요'라는 입력창에 자신의 점수를 숫자로 써주면 그에 해당하는 성적이 출력된다.

반응형