인생은 여행 人生は旅
파이썬 - 조건문 if 1 본문
점프 투 파이썬 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 |