이것에 대한 논란은 파이썬을 사용하는 사람들 사이에서 아직도 계속되고 있는 것인데 탭으로 하자는 쪽, 공백으로 하자는 쪽 모두다 일치하는 내용은 단 하나, 둘을 혼용해서 쓰지 말자는 것이다.
공백으로 할 거면 항상 공백으로 하고 탭으로 할 거면 항상 탭으로 하자는 말이다.
탭이나 공백은 프로그램 소스에서 눈으로 보이는 것이 아니기 때문에 혼용해서 쓰면 에러의 원인이 되기도 한다. 주의 하도록 하자.
(※ 요새는 들여쓰기 시 스페이스만을 사용하는 것이 파이썬 프로그램 커뮤니티에서 보편적으로 권장되는 방식이다.)
[참고] ':'을 잊지 말자
if(조건문) 다음에는 반드시 콜론(':')이 오게 된다. 이것은 특별한 의미라기보다는 파이썬의 문법 구조이다. 왜 하필이면 ':'인가에 대해서 궁금하다면 파이썬을 만든 Guido에게 직접 물어보아야 할 것이다. while이나 for, def, class 에도 역시 그 문장의 끝에 ':'이 항상 들어간다. 이 ':'을 가끔 빠뜨리는 경우가 많은데 주의하도록 하자.
파이썬이 다른 언어보다 보기가 쉽고 소스코드가 간결한 이유가 바로 ':'을 사용하여 들여쓰기(indentation)를 하게끔 만들기 때문이다. 하지만 숙련된 프로그래머들이 파이썬을 접할 때 가장 혼란스러운 부분이기도 하다.
if 문을 다른 언어에서는 { } 이런 기호로 감싸지만 파이썬에서는 들여쓰기로 해결한다.
조건문이란 무엇인가?
if <조건문>에서 사용되는 조건문이란 참과 거짓을 판단하는 문장을 말한다.
자료형의 참과 거짓에 대해서는 이미 알아 보았지만 몇가지만 다시 알아보면 다음과 같은 것들이 있다.
자료형의 참과 거짓
자료형
참
거짓
숫자
3
0
문자열
"abc"
""
리스트
[1,2,3]
[]
터플
(1,2,3)
()
딕셔너리
{"a":"b"}
{}
따라서 위의 예에서 보았던
>>> money = 1
>>> if money:
에서 조건문은 money가 되고 money는 1이기 때문에 참이 되어 if문 다음의 문장을 수행하게 되는 것이다.
비교연산자
조건판단을 하는 경우는 자료형보다는 비교 연산자(<, >, ==, !=, >=, <=)를 쓰는 경우가 훨씬 많다.
다음 표는 비교연산자를 잘 설명해 준다.
비교연산자
설명
x < y
x가 y보다 작다
x > y
x가 y보다 크다
x == y
x와 y가 같다
x != y
x와 y가 같지 않다
x >= y
x가 y보다 크거나 같다
x <= y
x가 y보다 작거나 같다
예를 통해서 위의 연산자들에 대해서 알아보자.
>>> x = 3
>>> y = 2
>>> x > y
True
>>>
x에 3을 y에 2를 대입한 다음에 x > y라는 조건문을 수행하니까 True를 리턴한다. 그 이유는 x > y라는 조건문이 참이기 때문이다.
>>> x < y
False
위의 조건문은 거짓이기 때문에 False를 리턴한다.
>>> x == y
False
x와 y는 같지 않다. 따라서 위의 조건문은 거짓이다.
>>> x != y
True
x와 y는 같지 않다. 따라서 위의 조건문은 참이다.
앞의 경우를 다음처럼 바꾸어 보자.
"만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 그렇지 않으면 걸어가라"
위의 상황을 다음처럼 프로그래밍 할 수 있을 것이다.
>>> money = 2000
>>> if money >= 3000:
... print("택시를 타고 가라")
... else:
... print("걸어가라")
...
걸어가라
>>>
money >= 3000 이란 조건문이 거짓이 되기 때문에 else문 다음의 문장을 수행하게 된다.