인생은 여행 人生は旅

파이썬 - 조건문 if 1 본문

코딩 공부

파이썬 - 조건문 if 1

하늘빛 칵테일 2024. 3. 11. 11:22

점프 투 파이썬 2023

if 문은 왜 필요할까?

다음과 같은 상상을 해 보자.

‘돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다.’

우리 모두에게 일어날 수 있는 상황 중 하나이다. 프로그래밍도 사람이 하는 것이므로 위 문장처럼 주어진 조건을 판단한 후 그 상황에 맞게 처리해야 할 경우가 생긴다. 이렇듯 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if 문이다.

파이썬에서는 위와 같은 상황을 다음과 같이 표현할 수 있다.

>>> money = True
>>> if money:
...     print("택시를 타고 가라")
... else:
...     print("걸어 가라")
...
택시를 타고 가라

money에 True를 대입했으므로 money는 참이다. 따라서 if 문 다음 문장이 수행되어 '택시를 타고 가라'가 출력된다.

다음 순서도는 ‘택시를 타고 가라’라는 문장이 출력되는 과정을 보여 준다. 이렇게 프로그램 실행 과정을 순서도로 그려 보면 훨씬 이해하기 쉽다.

점프 투 파이썬IDLE 셸을 쓴다면 주의하세요

프롬프트(>>>)가 보이는 이 책의 예제는 반드시 IDLE 셸이 아닌 파이썬 셸에서 실행하도록 하자. IDLE 셸에서는 줄 바꿈 표시(...)가 보이지 않아 들여쓰기 오류를 범할 가능성이 크다.

하지만 파이썬 3.10부터는 IDLE 셸의 프롬프트(>>>)와 줄 바꿈 표시(...)가 왼쪽의 분리된 영역에 나타나도록 개선되었다.

따라서 파이썬 3.10 이상의 버전을 사용한다면 이 책의 예제를 IDLE 셸에서 실행해도 괜찮다.

if 문의 기본 구조

다음은 if와 else를 사용한 조건문의 기본 구조이다.

if 조건문:
    수행할_문장1
    수행할_문장2
    ...
else:
    수행할_문장A
    수행할_문장B
    ...

조건문을 테스트해서 참이면 if 문 바로 다음 문장(if 블록)들을 수행하고 조건문이 거짓이면 else 문 다음 문장(else 블록)들을 수행하게 된다. 따라서 else 문은 if 문 없이 독립적으로 사용할 수 없다.

들여쓰기 방법 알아보기

if 문을 만들 때는 if 조건문: 바로 다음 문장부터 if 문에 속하는 모든 문장에 들여쓰기(indentation)를 해야 한다. 다음 예를 보면 조건문이 참일 경우 ‘수행할_문장1’을 들여쓰기했고 ‘수행할_문장2’와 ‘수행할_문장3’도 들여쓰기했다. 다른 프로그래밍 언어를 사용해 온 사람들은 파이썬에서 ‘수행할_문장’을 들여쓰기하는 것을 무시하는 경우가 많으므로 더 주의해야 한다.

if 조건문:
    수행할_문장1
    수행할_문장2
    수행할_문장3

다음처럼 작성하면 오류가 발생한다. ‘수행할_문장2’를 들여쓰기하지 않았기 때문이다.

if 조건문:
    수행할_문장1
수행할_문장2
    수행할_문장3

IDLE 에디터에서 다음과 같이 작성하여 실행해 보자. 여기에서는 오류가 발생하는지 확인만 하면 되므로 IDLE 에디터 창에 코드를 작성하고 [F5]를 눌러 바로 실행하자.

# indent_error.py
money = True
if money:
    print("택시를")
print("타고")
    print("가라")

들여쓰기 오류가 발생하는 것을 확인할 수 있다.

다음과 같은 경우에도 오류가 발생한다. ‘수행할_문장3’을 들여쓰기했지만, ‘수행할_문장1’이나 ‘수행할_문장2’와 들여쓰기의 깊이가 다르다. 즉, 들여쓰기는 언제나 같은 깊이로 해야 한다.

if 조건문:
    수행할_문장1
    수행할_문장2
        수행할_문장3

IDLE 에디터에서 다음과 같이 작성하여 실행해 보자.

# indent_error2.py
money = True
if money:
    print("택시를")
    print("타고")
        print("가라")

마찬가지로 들여쓰기 오류가 발생하는 것을 확인할 수 있다.

그렇다면 들여쓰기는 공백 문자([Spacebar])로 하는 것이 좋을까, 탭 문자([Tab])로 하는 것이 좋을까? 이에 대한 논란은 파이썬을 사용하는 사람들 사이에서 아직도 계속되고 있다. 공백 문자로 하자는 쪽과 탭 문자로 하자는 쪽 모두가 동의하는 내용은 2가지를 혼용해서 쓰지 말자는 것이다. 공백 문자로 할 것이라면 공백으로 통일하고, 탭 문자로 할 것이라면 탭으로 통일하자는 말이다. 탭이나 공백은 프로그램 소스에서 눈으로 보이는 것이 아니기 때문에 혼용해서 쓰면 오류의 원인이 되므로 주의하자.

요즘 파이썬 커뮤니티에서는 들여쓰기를 할 때 공백 문자 4개를 사용하는 것을 권장한다. 또한 파이썬 에디터는 대부분 탭 문자로 들여쓰기를 하더라도 탭 문자를 공백 문자 4개로 자동 변환하는 기능을 갖추고 있다.

 

파이썬은 들여쓰기가 중요!

'코딩 공부' 카테고리의 다른 글

파이썬 - 반복문(while 1)  (0) 2024.03.13
파이썬 - 조건문 if 2  (0) 2024.03.12
파이썬 - 변수  (0) 2024.03.08
파이썬 - 불자료형  (1) 2024.03.07
파이썬 - 집합 자료형  (2) 2024.03.06