Page 16 -
P. 16
1
프로그램 1.1.2 명령 줄 인수의 이용 (useargument.py)
import sys
import stdio 프로그래밍 기초
stdio.write('Hi, ')
stdio.write(sys.argv[1])
stdio.writeln('. How are you?')
이 프로그램을 보면 명령 줄 인수를 이용해 프로그램의 작동을 어떻게 제어하는지 알 수 있다.
명령 줄 인수로 프로그램의 작동을 조절할 수 있다. 이 프로그램은 명령 줄 인수를 입력받고, 인
수를 이용해 메시지를 출력한다.
% python3 useargument.py Alice
Hi, Alice. How are you?
% python3 useargument.py Bob
Hi, Bob. How are you?
% python3 useargument.py Carol
Hi, Carol. How are you?
useargument.py에서 import sys 문장은 sys 모듈에 정의된 기능을 사용하겠다는 것을 파이썬에
게 알려준다. sys 모듈 기능 중 argv는 명령 줄 인수 목록을 담고 있으며, 명령 줄에서 python3
useargument.py 다음에 전달한 공백으로 분리된 인수를 담고 있다. 자세한 메커니즘은 나중에 설명
한다(2.1절). 일단 지금은 명령 줄에서 프로그램명 다음에 전달한 첫 번째 인수가 sys.argv[1]에, 두
번째 인수가 sys.argv[2]에, 그리고 그 뒤의 인수들이 계속해서 argv에 들어 있다고 알아 두면 된다.
useargument.py와 마찬가지로 프로그램 안에서 사용한 sys.argv[1]이 명령 줄에 입력한 문자열을
나타낸다.
writeln() 외에 [프로그램 1.1.2]에서는 write() 함수를 호출한다. 이 함수는 writeln()과 같지만,
그저 문자열을 출력할 뿐 행은 바꾸지 않는다.
이 프로그램 역시 입력한 것을 그대로 출력하는 단순한 프로그램이라 얼핏 보기에는 그다지 흥미로
워 보이지 않지만, 곰곰이 생각해보면 수행할 작업을 제어하기 위해 사용자로부터 정보를 입력받아
응답하는 것도 프로그램의 기본 기능 중 하나임을 알 수 있을 것이다. useargument.py가 보여주는 간
단한 모델을 통해 파이썬의 기본 프로그래밍 메커니즘을 생각해볼 수 있을 뿐만 아니라, 흥미로운 다
양한 계산 문제를 모두 처리할 수 있다.
조금 더 개념적으로 생각해보면 useargument.py는 그저 하나의 문자열(인수)을 다른 문자열(터미널
에 출력되는 메시지)로 대응시키는 것일 뿐이라는 것을 알 수 있다. 이 개념을 이용하면 우리가 만드
는 파이썬 프로그램은 입력 문자열을 출력 문자열로 변환하는 일종의 블랙박스라고 생각할 수 있다.
이 모델은 간단할 뿐만 아니라 이론적으로는 그 어떠한 계산 작업도 완료할 수 있게 해주는 범용성을
025