본문 바로가기

개발환경/Python

파이썬으로 프로그래밍에 도전하자(3)

728x90

이 글의 주요 대상은 이제 프로그래밍에 첫 발을 들여놓는, 프로그래밍의 경험이 없는 분들을 대상으로 합니다.

 

"파이썬으로 프로그래밍에 도전하자" 세 번째 시간입니다.

지난 글에서는 파이썬에서 사용하는 데이터 형태, 타입에 대하여 살펴보았습니다.

 

이제 우리가 사용하고자 하는 다양한 데이터를 입력할 수 있게 되었습니다.

또 내용을 조금씩 수정해서 출력하는 것도 가능해졌네요.

 

그럼 이제부턴 좀 더 복잡한 데이터 처리를 해봐야겠죠.

데이터의 처리는 단순한 사칙연산만 있는게 아니죠.

이럴땐 이렇게 처리하고, 저럴땐 저렇게 처리하고..

우리가 원하는 여러가지 처리를 위한 공식이나 조건들이 있을것입니다.

 

컴퓨터는 우리가 머리로 생각하는 것처럼 이것저것 뚝딱뚝딱 처리하지 못합니다.

그냥 시키는대로.. 순서대로.. 쭈~욱 이어서 처리를 해 나가는거죠.

 

그러면 우리는 무엇을 어떻게 시켜야할까요?

말 그대로, 순서대로 쭉 이어서 가다가 이런 경우에는 이렇게 해라~라고 조건을 주고 그 조건에 따른 동작을 지정해 주면 되겠죠.

이렇게 컴퓨터에게 처리를 위한 조건을 알려주는 구문을 조건문이라고 합니다.

가장 기본적인 조건문은 if ~~ else OO 구문이 있습니다.

만약~~이면 OO를 해라. 라는 의미입니다.

 

예제를 한 번 살펴볼까요?

내용은 이해하기 어렵지 않을것입니다.

그런데 여기서 특이한 모습이 보입니다.

if a > b: 와 같이 마지막에 콜론( : )이 붙어있습니다.

이전에 봤던 코드에는 이런 것은 없었죠.

 

만약 a > b 라면.. 이라는 구문을 만족할때 우리는 "a가 b보다 큽니다."라는 문자열을 출력하려고 하는데..

그 구문을 만족할 때 과언 어디까지 실행을 해야 할까요?

그걸 지정해 주지 않으면 끝까지 흘러가 버리겠죠.

그래서 우리는 명령들을 블록이란 것으로 나누어서 표현합니다.

그리고 콜론( : )은 블록을 지정하는 구문의 끝에 붙여서 다음 줄부터 블록이 시작된다.. 라고 표시해 주는 것입니다.

 

그럼 블록의 끝은 어떻게 표현할까요?

파이썬에서는 블록의 구분을 들여쓰기를 이용해서 지정합니다.

소스코드를 보시면 print 구문이 몇 칸 안으로 들어와있죠?

저렇게 같은 간격으로 들여쓰기 된 구문들은 모두 같은 블록이다.. 라고 인식하는 것입니다.

그렇다면 블록의 끝을 지나면 들여쓰기의 간격을 원래대로 돌려두면 되겠죠.

 

위의 코드를 보시면 print 구문이 끝나고 들여쓰기가 해제되었습니다.

이제 블록은 끝났다는 뜻입니다.

 

그럼 if 구문에 따른 블록은 끝났으니 다음 명령어로 내려가겠죠.

else 라는 구문을 만났습니다.

역시 콜론( : )을 통해서 블록의 시작을 알려주고 print 구문을 실행했습니다.

 

이것으로 if~~ else OOO 조건문이 끝났습니다.

 

그런데 조건이 딱 한 가지만 있진 않겠죠.

이럴땐 이렇게, 저럴땐 저렇게, 그 외에도 또 다른 조건을 동시에 지정할 수 있습니다.

이럴 경우에는 if~~ else OO 문을 중첩해서 사용하는 방법if~~ elif OO else XX 와 같이 if ~~ else OO 구문이 확장된 표현을 사용하는 방법중 하나를 선택할 수 있습니다.

위의 코드에서 a == b 라는 구문은 a와 b가 같다는 것을 의미합니다.

일반적으로 프로그래밍에서는 왼쪽 데이터, 변수와 오른쪽 데이터, 변수가 같다고 표현할 때에는 == 를 사용합니다.

왼쪽 항이 크다 (>), 왼쪽 항이 작다 (<)의 경우는 기존의 수학(산수?)과 같은 부호를 사용하는데 같다의 경우에는 기존의 등호 (=)를 사용하지 않죠.

이유는 기존의 등호 (=)는 오른쪽 항의 값을 왼쪽 항에 넣는다는 의미로 사용되기 때문에 두 가지를 구분하기 위해서 입니다.

그래서 기존의 등호 (=)는 할당연산자라고 불립니다.

파이썬에도 다양한 연산자가 있는데 앞으로 필요할 때마다 설명을 드리도록 하겠습니다.

 

위의 두 종류의 코드는 같은 결과를 출력해 줍니다.

 

여기서 우리가 알 수 있는 것은 if ~~ elif OO else XX 구문만이 아니라..

동일한 결과를 위한 코드의 작성에 정답은 없다.. 라는 것입니다.

 

if ~~ elif OO else XX 구문을 사용해도 되고 if ~~ else OO 구문을 중첩해서 사용해도 됩니다.

나중에 배울 또 다른 조건문을 사용해도 되죠.

편하신 대로 코드를 작성하시면 됩니다.

 

물론 좀 더 실력이 좋아지고 컴퓨터가 처리하는 내부과정까지 이해하게 되면 각 구문들의 차이점이나 효율성 등을 따져서 작성하실 수 있습니다.

그런 프로그래밍을 위해서 더욱 빠르고 효율적인 처리가 가능하도록 정리된 것이 흔히 말하는 좋은 알고리즘이라고 하는 것들이죠.

아직까지는 거기까지 신경쓰지 않으셔도 됩니다.

 

이번 글에서는 가장 기본적인 조건문에 대하여 살펴보았습니다.

다음 글에서는 계산을 반복해서 수행시킬 수 있는 반복문에 대하여 알아보도록 하겠습니다.

 

 

 

 

728x90
반응형