연속열과 다른 것들에 대하여 더 자세히

우리는 무엇을 다룰 것인가?
우리는 파이썬 프로그램을 입력하는 새로운 도구를 소개한다.
우리는 미래의 사용을 위해 정보를 저장하는 변수의 사용법을 살펴본다.
또한 작업을 수행하기 위해서 일련의 명령어들을 결합하는 법을 살펴본다.

자, 이제 우리는 간단한 한개의 기초적인 명령어를 파이썬으로 타이프해 넣는 법을 안다. 그리고 데이타와 그것으로 무엇을 할수 있는지 고려하기 시작했다. 우리가 다중 명령어를 파이썬으로 타이프해 넣을 때 무슨일이 일어나는지 알아보자.

IDLE과 함께 하는 즐거움

그러나 시작하기 전에, 여러분이 파이썬 1.5.2버젼을 설치했다면 (여러분이 시작할 때 보여준다) 여러분은 기본으로 설치된 IDLE이라고 부르는 도구를 발견할 수 있을 것이다. 이것은 기본적으로 창에서 명령어 프롬프트 형식으로 실행된다. 그것은 도스 버전과 비교하여 약간의 이점을 가지고 있다.:

여러분이 윈도우를 사용한다면 PythonWin이라는 또 다른 선택사항이 있어서 여러분은 winall 패키지의 일부로서 그것을 내려 받을 수 있다. 이것은 모든 윈도우 MFC 저 수준 프로그래밍 함수에 접근할 수 있도록 하여 주며, 중요하게도, IDLE의 아주 훌륭한 대안이다. 기껏해야 윈도우에서만 작동하지만 나의 의견으로는 IDLE보다는 약간은 우월한것 같다. 반면에 IDLE은 매우 새롭게 그리고 연속적으로 판형을 내고 있어서 파이썬윈을 압도하게 될지도 모른다. 어쨋든 간에, 선택을 가질 수 있다는 것은 좋은 일이다!

짤막한 주석

가장 중요한 프로그래밍 도구중의 하나는 초보자들이 느끼기에는 처음보기에 쓸모없는것이다 - 주석.
주석은 무슨일이 진행되고 있는지 기술해 주는 프로그램에 있는 라인들일 뿐이다. 그 라인들은 프로그램이 어떤 식으로 진행되든 아무런 영향을 미치지 않는다, 그 라인들은 순수하게 장식적이다. 그 라인들은 중요한 임무가 있다.- 그것들은 프로그래머에게 무슨일이 진행되고 있으며 더욱 중요한 것은 진행되고 있는지 알려준다. 이것은 프로그래머가 그 코드를 작성한 사람이 아니거나, 혹은 작성한지 너무 오랜 시간이 되었을 때 특히나 중요하다. 여러분이 잠시라도 프로그래밍을 해본 경험이 있다면, 여러분은 실제로 좋은 주석이라는 것에 대하여 감사할 것이다. 지금부터 나는 내가 작성한 코드 조각들에 대하여 주석을 할 것이다. 점차적으로 설명을 하는 텍스트는 줄어 들고 대신에 설명은 주석자리에 나타날 것이다.

모든 언어는 주석을 지시하는 방법을 가진다. 베이직에서 그것은 REM이며 주석의 시작을 나타낸다. 그 이후의 모든 것들은 무시된다:

REM print "This never gets printed"
print "This gets printed"

여러분이 도스의 배치파일을 작성해 보았다면 도스배치파일도 또 같은 주석 표식을 사용하기 때문에, 여러분은 REM을 알고 있을 것이다.

대부분의 베이직은 또한 여러분에게 REM 대신에 '을 사용할 수 있도록 허용하는데 그것은 타이프하기에는 쉽지만 읽기에는 더 어렵다. 선택은 여러분의 것이다.

파이썬과 티글 모두 # 심볼을 주석표식으로 사용한다. # 을 따르는 모든 것들은 무시된다:

v = 12     # give v the value 12
x = v*v    # x is v squared

그런데 이것은 대단히 나쁜 주석 스타일이다. 여러분의 주석은 단지 그 코드가 무슨일을 하는지만 기술해서는 안된다. - 우리는 우리자신만을 위해서만 그것을 볼수 있다! 주석은 그것을 하고 있는지 설명해야만 한다:

v = 3600    # 3600 is num of secs in an hour
s = t*3600  # t holds elapsed time in hours, so convert to secs

이것은 더욱 더 도움을 주는 주석이다.

변수를 사용하는 연속열

이제 IDLE이나 도스 혹은 유닉스 윈도우창 파이썬 프롬프트에서 이것을 타이프 해 보라:

>>> v = 7
>>> w = 18
>>> x = v + w    # use our variables in a calculation
>>> print x

여기에 일어난 일은 우리가 변수( v, w, x )를 만들고 그것들을 다루고 있다는 것이다. 이것은 약간은 여러분의 주머니 계산기에서 M 버튼을 눌러 나중의 사용을 위하여 결과를 저장하는 것과 비슷한다.

우리는 그 결과를 출력하기 위하여 형식화 문자열을 사용함으로써 이것을 더욱 이쁘게 할 수 있다:

>>> print "The sum of %d and %d is: %d" % (v,w,x)

형식화 문자열을 사용하는 한 가지 이점은 우리가 그것들을 변수에 역시 저장할 수 있다는 것이다:

>>> s = "The sum of %d and %d is: %d"
>>> print s % (v,w,x)   # useful if printing same output with different values

좀 오래된 문제들

지금까지 여러분은 이런 연속열 구조가 약간 과장되었고 이해하기 쉽다고 생각할지 모른다. 그것이 대단히 쉽게 보이지만 보이는 것처럼 그렇게 쉽지만 않다고만 한다면 여러분이 맞을 수도 있다. 거기에는 숨겨진 함정들이 있을 수 있다. 여러분이 HTML 문서에서 모든 머리부를 한 단계 '올리기를' 원한다고 생각해 보라:

이제 HTML문서에서 머리부는 다음의 텍스트로 둘러싸여져 설정된다.

<H1>text</H1> level 1 표제부,
<H2>text</H2> level 2 표제부,
<H3>text</H3> level 3 표제부 등등.

문제는 여러분이 레벨 5의 머리부에 도착할 때 까지는 머리부의 텍스트가 몸체의 텍스트보다도 더 작은 경우가 있다는 것이다, 그것은 이상하게 보인다. 그런식으로 여러분은 모든 머리부를 한단계 올리기로 결정할 수 있다. 그렇게 하는 아주 쉬운 방법은 편집기에서 간단한 문자열 바꾸기를 사용하는 것이다, '<H2'를 '<H1'로 그리고 '</H2'를 '</H1' 등등으로 바꾸는 것이다.

그렇지만 여러분이 가장 높은 숫자에서 시작한다면 - 예를 들어 H4 -> H3, 그리고 H3 -> H2 마지막으로 H2 -> H1 - 무슨일이 일어나는 지 생각해 보라 모든 머리부는 H1로 이동할 것이다! 그렇게 연속열의 행위의 순서는 중요하다. 우리가 바꾸기를 수행하는 프로그램을 작성할 때도 마찬가지이다. (우리가 그것을 실제로 하기를 원할지도 모르겠는데, 머리부를 올리는 작업은 우리가 일상적으로 하는 작업이기 때문이다.)

곱 셈 표

이제 나는 프로그래밍 연습문제를 소개할 생각이다. 우리는 다음 몇개의 장에서 그것을 발전시켜 볼 것이다. 해법은 점진적으로 우리가 새로운 기술을 배우면서 개선될 것이다.

여러분은 세개의 이중인용부호로 기다란 문자열을 둘러침으로써 타이프할 수 있다는 것을 기억하는가? 그것을 사용하여 곱셈표를 만들어 보자:

>>> s = """
1 x 12 = %d
2 x 12 = %d
3 x 12 = %d
"""     # be careful - you can't put comments inside 
>>>     # strings, they'll  become part of the string!
>>> print s % (12, 2*12, 3*12)

이것을 확장함으로써 우리는 1부터 12까지의 완전한 12자리 곱셈표를 출력할 수 있다. 그러나 더 좋은 방법이 있지 않을까? 대답은 '예'이다. 그것이 무엇인지 알아보자.

기억해야할 요점
  • IDLE 은 파이썬 프로그램을 작성하기 위한 운영체제에 독립적인 개발 도구이다.
  • 주석은 프로그램은 더 쉽게 읽도록 하지만 프로그램의 작동에는 영향을 미치지 않는다.
  • 변수는 나중의 사용을 위하여 간접적인 결과를 저장할 수 있다.

Previous  Next  Contents


이 웹페이지에 대하여 질문 혹은 제안사항이 있으면 다음주소로 나에게 전자메일을 보내라: agauld@crosswinds.net