본문 바로가기
언어/Python

[Python 기본 공부정리] 5-1. 제어문-조건문(if)

by 민-Zero 2019. 12. 20.

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 

틀린 부분에 대한 지적은 감사합니다.

제어문 이란 프로그램에서 순차적인 흐름을 통제하는 방법이다. 코드는 위에서부터 아래로 순차적으로 진행되게 되는데 그 순서를 조절할 수 있도록 하는 코드인 것이다.

그중 if문은 조건문으로써 설정한 조건에 따라 코드의 실행 여부를 결정할 수 있게 만들어 주는 제어문이다.

 

1. if문

if문은 해당 조건식이 True인 경우 if문에 포함된 코드를 실행하고 아닐 경우에는 if문에 포함된 코드를 수행하지 않고 건너뛴다. 파이썬에서는 범위를 들여쓰기를 통해 구분하며 조건식 끝에 :(콜론)을 붙인다.

조건식에는 True, False를 구분할 수 있는 비교 연산자, 논리 연산자, 비트 연산자, 멤버 연산자, 식별 연산자 모두 사용 가능하며 원하는 기능에 맞는 연산자를 통해 조건을 구분해야 한다.

(파이썬 커뮤니티 에서 들여 쓰기를 공백(spacebar) 4개를 사용하는 것을 권장한다. 원한다면 다르게 들여 쓰기를 하여도 되지만 모든 들여 쓰기 간격은 처음 작성한 간격과 동일해야 한다)

문법) 

if 조건식:

    실행 코드

 

x는 10을 y는 5를 가리키고 있으므로 조건식 x>y가 True가 반환되므로 if문에 포함된 코드가 실행되었다.

 

위의 경우 조건식이 False 이기 때문에 if문에 포함된 코드가 실행되지 않고 넘어가게 된다.

 

2. if~else 문

단 1개의 조건만 필요한 경우도 있겠지만 어떤 조건을 만족하지 않는 경우도 생각해야 하는 상황이 존재한다. 위의 예시만 해도 크지 않으면 작다를 표현해야 하는데 작다를 표현하려면 코드를 수정해야 한다. 이처럼 해당 조건을 만족하지 않는 경우 즉, False를 포함하여 작성해야 한다면 if~else문을 통해 원하는 기능을 제작할 수 있다.

문법)

if 조건식:

    실행 코드

else:

    실행 코드

 

x > y 의 조건식이 True값을 반환한다면 if문의 코드가 실행되지만 False 라면 if문의 코드를 건너뛰고 else문의 코드를 실행하게 된다. 이 경우는 x 가 y보다 크기 때문에 조건식이 True를 반환해 else문은 실행되지 않고 if문만 실행되고 종료되었다.

 

 

이번에는 조건식에 비교연산자와 논리 연산자를 둘 다 사용하였다. and 연산은 둘 다 True이어야 True를 반환하는데 둘 다 False를 반환하므로 if문이 실행되지 않고 else문이 실행되었다.

이 경우를 생각해보면 둘 중 하나는 z보다 작다 와 둘 다 z보다 작다로 경우를 나누는 것이 좀 더 정확하게 표현 될것이다. 이처럼 경우가 2가지가 아니라 좀더 다양해질 경우를 위한 if문이 존재한다.

 

3. if~elif~else 문

조건식이 True 인지 False인지에 대한 경우뿐만 아니라 다양한 조건에 따라 코드를 진행하기 위해서는 다양한 조건에 따라 elif 구문을 추가하면 된다. 순차적으로 모든 조건을 비교하여 True의 경우인 구문의 코드를 실행하며 모두 True가 아닐 경우 else구문이 실행된다.

문법)

if 조건식1:

    실행 코드

elif 조건식2:

    실행 코드

elif 조건식3:

    실행 코드

~~~

else:

    실행 코드

 

멤버 연산자를 통해 조건식을 구성하여 조건식을 판별하였다. 차례로 조건식을 검사하여 True를 반환하는 경우의 코드를 실행하면 그 밑에 코드가 존재하여도 실행하지 않고 조건문은 건너뛰게 된다.

만약 해당 조건에 아무것도 실행하고 싶지 않다면 pass를 사용할 경우 아무 동작도 하지 않고 넘어가게 된다.

 

if~elif~else구문을 사용할 때 조건이 많다면 하나 주의할 점이 있다.

이 예시처럼 조건을 만족하는 경우가 2개 있다면 2개다 실행하지 않고 제일 처음 만난 True를 반환하는 곳의 코드를 실행한 후 조건문이 끝나기 때문에 각각의 조건식을 신경 써서 설정해야 한다.

 

4. 조건부 표현식

if~else문의 응용으로 조건부 표현식이 있다. 특별한 표현식이 아닌 조건문이 True이면 if구문의 코드를 False면 else구문의 코드를 실행하는 if else를 응용, 한 줄 표현을 통해 가독성과 활용성을 높인 표현식이다.

 

문법)

(조건식 True일 경우 실행) if 조건식 else (조건식 False일 경우 실행)

 

변수의 초기화를 조건부 표현식을 통해 진행하였다. score의 값이 65로 70보다 작아 조건식은 False를 반환하게 되므로 else 뒤의 "study"가 반환되어 grade변수는 "study"라는 문자열을 가리키게 된다. 

 

조건부 표현식을 사용하지 않고도 동일한 기능을 만들 수 있지만 코드가 더 길어지기 때문에 길게 작성된 코드 사이에 있을수록 가독성이 떨어지게 된다.

댓글