간단한 연속열

우리는 무엇을 다룰 것인가?
명령어 단독사용, 파이썬을 계산기로 사용하기, 각 괄호를 사용하여 정확한 결과를 얻기 그리고 형식화 문자열을 사용하여 텍스트와 수치를 결합하기. 마지막으로 우리는 하나의 프로그램 안에서 파이썬을 끝내는 법을 알아본다.

간단한 일련의 명령어들은 여러분이 작성할 수 있는 가장 기본적인 프로그램이다. 가장 간단한 연속열은 한개의 명령어를 가지고 있는 연속열이다. 우리는 이제 이러한 것들 약간을 시험해 보려 한다. 머리부를 보면 여러분이 파이썬 프롬프트 '>>>'에서 무엇을 타이프해야할지를 보여주고, 그 다음의 문단은 무슨일이 일어나는지 설명해 줄 것이다.

>>> print 'Hello there!'

print명령어는 파이썬에게 그 결과를 여러분에게 보여주도록 하는 방법이다. 이 경우에 연속적인 문자열H,e,l,l,o, ,t,h,e,r,e,!을 출력하고 있다. 이러한 일련의 문자들은 프로그래밍 세계에서는 string of characters 혹은 a character string 또는 그냥 간단하게 문자열string이라고 알려져 있다.

여러분은 인용부호를 둘러쳐서 그것이 문자열이라는 것을 지시한다. 여러분은 단일이용부호(위와 같이)를 쓰거나 혹은 이중이용부호를 사용할 수 있다 : "a string ". 이것으로 여러분은 한종류의 인용부호를 또 다른 한 종류의 인용부호로 둘러싸여진 문자열속에 포함시킬수 있다. - 문장속에 다른 문장을 집어 넣을 때 유용하다:

>>> print "Monty Python's Flying Circus has a ' within it..."

이것은 인쇄될수 있는 그저 단순한 문자열이 아니다:

>>>print 6 + 5

여기에 우리가 수학적 연산의 결과를 출력해 보았다 - 우리는 육과 오를 더했다. 파이썬은 그러한 숫자들과 더하기 기호를 인식하고 우리를 위하여 합계를 낸다. 그리고는 그 결과를 출력한다.

이런 직접적인 방식으로 여러분은 파이썬을 이용한다 : 그것은 휴대용 '계산기'이다! 약간의 덧셈을 더 시도해 보라. 다른 수학적 operators연산자를 사용하라:

다중 표현식을 다음과 같이 결합하라:

>>> print ((8 * 4) + (7 - 3)) / (2 + 4)

숫자들을 하나로 묶기 위하여 내가 괄호를 사용한 방식에 주목하라. 여러분이 괄호없이 똑 값은 연속열을 타이프한다면 어떤 일이 일어나는가? 이것은 파이썬이 덧셈과 뺄셈보다 먼저 곱셈과 나눗셈을 평가할 것이기 때문이다. 이것은 보통 여러분이 수학적인 견지에서 예상한 바일 것이다. 그러나 프로그래머로서 여러분이 예상한 바는 아닐지도 모른다! 모든 프로그래밍 언어는 처리의 평가 순서를 결정하는 규칙을 가지고 있다. 이것은 연산자 우선순위 operator precedence 라고 알려져 있다. 여러분은 각각의 언어에 대한 참조문서를 살펴보고 그것이 어떻게 작동하는지 알아볼 필요가 있다. 파이썬에서 그것은 보통 논리와 직관으로도 충분하지만, 때로는 아닐 수도 있다....

다음과 같이 일반적으로 기다란 연속의 합을 다룰때에는 여러분이 원하는 값을 확실히 하기 위하여 괄호를 포함하는 것이 안전하다.

주의 해야할 다른 점:

>>> print 5/2

위 식은 정수값(integer)이 결과(즉 2)가 된다. 이것은 파이썬이 숫자들을 정수라고 생각하고 여러분이 그런식으로 그것들을 유지하기를 원한다고 가정하기 때문이다. 여러분이 소수를 결과로 원한다면 단순히 하나의 숫자를 소수로 쓰기만 하면 된다:

>>> print 5/2.0
2.5
파이썬은 2.0이라는 숫자를 보고 우리가 분수를 다루기를 원한다고 깨닫는다.(그 분수는 컴퓨팅 용어상 실수 real 혹은 부동소수점수 floating point라고 일컬어진다.) 그러므로 파이썬은 분수를 결과로 응답한다. 여러분이 정수를 계속 유지하고자 한다면, 여러분은 나눗셈 연산자 같이 보이는 % 기호를 사용하여 나머지를 얻을 수도 있다. 파이썬은 그 나머지를 인쇄할 것이다:
>>> print 7/2
3
>>> print 7%2
1
>>> print 7%4
3

%는 나머지modulus 혹은 mod 연산자라고 알려져 있으며 다른 언어에서는 MOD 혹은 그 비슷한 모습으로 보여진다.

시험해보라 그러면 여러분은 곧 이해를 하게 될 것이다.

>>>print 'The total is: ', 23+45

여러분은 문자열과 숫자를 출력할수 있다는 것을 보았다. 이제 우리는 그들을 콤마로 나누어, 그 두개를 하나의 print문에 결합한다. 우리는 이 사양을 확대해서 파이썬의 유용한 꼼수로 그것을 결합하여 형식화 문자열format string이라고 부르는 데이타를 출력할 수가 있다:

>>> print "The sum of %d and %d is: %d" % (7,18,7+18)

이 명령어에서 형식화 문자열은 속에 '%' 표식을 포함하고 있다. % 뒤의 문자 'd'는 그 위치에 '소수'가 위치해야 한다는 것을 파이썬에게 알려준다. 표식들을 채우고 있는 값들은 % 자신의 뒤를 연이어 따르는 괄호쳐진 표현식안에 있는 값들로 부터 얻는다.

% 표식 뒤에 놓일수 있는 다른 문자들도 있다. 이러한 것들 중 약간을 나열하면:

파이썬 문서는 더 많은 정보를 줄 것이다....

사실 여러분은 어떤 파이썬 객체도 print명령어로 출력할 수 있다. 어떤 때는 그 결과가 여러분이 희망한 것이 아닐 수도 있다.(아마도 어떤 종류의 객체인지에 대한 단순한 기술일 뿐일 수도 있다.) 그러나 여러분은 그것을 항상 출력할 수 있다.

>>>import sys

자 이것은 생소한 것이다. 여러분이 이것을 시도해 보았다면 여러분은 그것이 겉보기에 아무것도 하지 않는다는 것을 보았을 것이다. 그러나 그것이 진짜 참은 아니다. 무슨일이 일어났는지 이해하기 위해서는 우리는 파이썬의 조립구조를 살펴볼 필요가 있다.( 비 파이썬 프로그래머라면, 참고 기다려 보라. 여러분에게도 역시 비슷한 메카니즘이 사용가능하다는 것을 알게 될 것이다!)

여러분이 파이썬을 시작할 때 일단의 명령어들이 여러분에게 사용가능하였다. 그것을 내장 built-ins이라고 불리는데, 왜냐하면 그들이 파이썬의 심장부에 만들어 졌기 때문이다. 그렇지만 파이썬은 사용가능한 명령어의 목록을 확장하여 확장 모듈에 실현할 수 있다. - 그것은 약간은 여러분이 즐겨찾는 DIY(스스로 조립하는)가게에서 새로운 도구를 사는것과 비슷하며 그것을 여러분의 도구상자에 추가하는 것과 비슷하다. 그 도구는 sys 부분이고 import 처리는 그것을 도구상자에 넣는 작업이다.

사실 이 명령어가 하는 일은 파이썬 명령어의 형태로 되어있는 새로운 '도구'들 모두를 사용가능하게 하는 것이다. 그 명령어들은 'sys.py'라고 부르는 파일 속에 정의되어 있다. 이것이 바로 파이썬이 확장되어 기본시스템으로 내장 되어 있지 않은 모든 종류의 똑똑한 일들을 하는 방법이다. 여러분이 설치하기만 하면 파이썬에 제공되는 모듈들과 마찬가지로, 여러분은 자신만의 모듈 modules을 만들어서 그것들을 수입하고 사용할 수 있다.

그래서 어떻게 우리는 이러한 새로운 도구들을 사용하는가?

>>>sys.exit()

아이고! 무슨일이 일어났는가? 단순히 우리는 sys모듈안에 있는 exit 명령어를 사용했을 뿐이다. 그 명령어는 파이썬을 끝내도록 해 버린다. (주의: 보통 여러분은 파일끝문자(EOF)를 >>>프롬프트에서 타이프함으로써 파이썬을 끝낸다 - 도스에서는 CTRL-Z on DOS 또는 유닉스에서는 CTRL-D )

exit의 뒤에 2개의 괄호가 있음을 주목하라. 그것은 exit이 sys모듈에서 정의된 하나의 함수(function)이며 우리가 파이썬 함수를 호출할 때는 그속에 아무것도 없을 지라도 괄호로 보충해줄 필요가 있다!

sys.exit 을 괄호없이 시도해 보라. 파이썬은 그것을 실행하지 않고 exit이 함수라는 것을 여러분에게 알려준다!

주의해야할 마지막 사항은 위의 두 명령어가 실제적으로는 조합일때만 유용하다는 것이다. 다시 말하면, 파일끝문자를 타이프하는 대신에 파이썬을 빠져나가려면 여러분은 다음과 같이 타이프할 필요가 있다:

import sys
sys.exit()

이것은 두개로 이루어진 일련의 명령어이다! 이제 우리는 더욱더 실제 프로그래밍에 접근하고 있다.

Tcl 사용하기

우리는 또한 단순한 명령어들을 다음과 같이 Tcl안에 역시 타이프해 넣을 수 있다. Tcl 인터프리터는 (여러분이 Tcl 8.0을 가지고 있다고 가정한다면) 'tclsh80'라고 도스 프롬프트에서 타이프함으로써 시작한다. 그 명령어의 프롬프트는 '%' 기호이다. 다음의 예제들을 시험해보라:

% put "Hello world"
Hello world
% put [expr 4 + 6]
10

위의 예에서 각괄호 부분이 먼저 평가되고 그 결과가 put 명령어에 넘겨진다는 것을 주목하라. 파이썬과는 다르게 여러분은 put명령어가 여러분이 의도하는 바를 번역할지 예상할 수가 없다, 그것은 문자열을 예상하고 있으며 그것이 문자열을 가졌는지는 여러분이 확인해야만 한다.

tclsh80로부터 빠져 나오려면 단지 exit이라고 프롬프트에서 타이프하라.

그리고 BASIC 역시...

BASIC 시작하기 위해서는 QBASIC라고 도스프롬프트에서 타이프하라. 이 경우에는 통합 프로그래밍 환경이 시작될 것이다. 환영메시지 등등을 제거하고 나면 편집창에서 여러분은 명령어들을 타이프할 수 있고 그리고 실행메뉴를 사용하여 창에서 무엇이든 실행할 수 있다. 이것은 그런 환경에서 여러분은 명령어들을 편집할수 있으며, 심지어는 텍스트에 대한 점검까지도 입력하면서 가능하게 해주는 이점이 있다.

다음의 일단의 명령어들을 타이프하고 그것들을 실행하라:

PRINT "Hello world"
PRINT 4+6

여러분은 평상시대로 파일메뉴의 종료를 통하여 빠져나온다.

이것이 우리가 처음으로 프로그래밍을 살펴본 것인데, 그것은 그렇게 고통스럽지는 않았다, 그렇지 않은가? 계속 앞으로 나가기 전에 우리는 프로그래밍의 원 재료, 데이타를 살펴보고 그것으로 우리가 무엇을 할 수 있는지를 살펴볼 필요가 있다.

기억해야할 요점
  • 하나의 명령어조차 프로그램이다
  • 파이썬은 거의 여러분이 예상한대로 수학을 처리한다
  • 소수형태의 결과를 얻으려면 여러분은 소수를 사용해야만 한다
  • 여러분은 텍스트와 숫자를 % 형식화 연산자를 사용하여 결합할 수 있다
  • import sys; sys.exit()로 종료하라

Previous  Next  Contents


질문이 있거나 제안사항이 있으면 다음주소로 나에게 전자메일을 보내라: agauld@crosswinds.net