본문 바로가기
코드/python

파이썬 입출력 관련

by WeZZ 2012. 1. 3.

2) 입력과 출력

우리들이 사용하는 대부분의 완성된 프로그램은 사용자의 입력에 따라서 그에 맞는 출력값을 내어주게끔 되어 있다. 예를 들어보면 게시판에 우리가 작성한 글을 입력한다는 “확인” 버튼을 눌러야만(입력) 우리가 작성한 글이 게시판에 올라가는 것(출력)을 확인 할 수 있게 되는 것이다.

사용자 입력 ---> 처리(프로그램, 함수 등) ---> 출력


우리는 이미 함수 부분에서 입력과 출력이 어떤 의미인지에 대해서 알아보았다. 지금부터는 좀 더 다양하게 사용자의 입력을 받는 방법과 파일을 읽고 쓰는 방법 등에 대해서 알아보도록 하자.


사용자 입력

어떤 변수에 사용자로부터 입력받은 값을 대입하고 싶을 때는 어떻게 해야 할까?


input의 사용

>>> a = input() 
'Life is too short, you need python' 
>>> a 
Life is too short, you need python 
>>> a = input() 
3 
>>> a 
3 
>>>

위의 예는 input의 사용법을 보여준다. input은 사용자의 입력을 받는 함수로서 사용자는 그것이 문자열일 때는 (')나 (")으로 둘러싸서 입력해야 에러가 나지 않는다. (달리 말하면 실제 프로그램 소스에 변수값을 입력하듯이 입력해야 한다.) 따라서 숫자 3은 (')나 (")으로 둘러쌀 필요가 없다.

>>> a = input() 
you need python 
Traceback (most recent call last): 
File "", line 1, in ?
File "", line 1 
you need python 
^ 
SyntaxError: invalid syntax

위처럼 you need python 을 변수에 입력하듯이 'you need python'처럼 ''로 감싸주지 않았을 때는 에러가 발생했다.


raw_input의 사용

>>> a = raw_input() 
Life is too short, you need python 
>>> a 
Life is too short, you need python 
>>>

위의 경우는 raw_input의 사용예이다. 문자열을 입력할 때 (')나 (")을 필요로 하지 않는다. raw_input은 입력되는 모든 것을 문자열로 취급한다.


raw_input과 input의 차이점은?

input은 변수에 값을 대입할 때와 마찬가지로 입력을 넣어주어야 한다. 즉, 문자열 값을 넣어주려면 따옴표로 감싸주어야 한다. 하지만 raw_input은 입력하는 모든 값을 문자열형으로 보기 때문에 입력에 주의해야 할 필요가 없다. 다만 정수값을 입력해도 문자열값으로 변환된다.

>>> a = raw_input() 
3 
>>> a 
'3' 
>>>

위의 예에서 보듯이 3이라는 정수값을 입력했지만 a에는 '3'이라는 문자열 값이 들어가게 된다. 프로그래밍을 할 때에는 보통 raw_input을 많이 쓴다. 그 이유는 변수에 대입되는 값이 무조건 문자열형태이기 때문에 입력값이 무엇인지에 대해서 신경을 쓰지 않아도 되기 때문이다. 만약 숫자 값을 raw_input으로 받았더라도 이것은 다시 형변환에 의해서 숫자의 형태(정수나 실수)로 바꿀 수 있다. 형변환에 대한 함수들은 3장에서 알아 볼 것이다.


프롬프트 추가하기

input(prompt), raw_input(prompt)


사용자로부터 입력을 받을 때 “숫자를 입력하세요.”라던지 “이름을 입력하세요”라는 질문을 포함하고 싶을 것이다. input이나 raw_input이라는 함수에 입력으로 위의 질문을 포함시킬 수가 있다. 다음의 예를 따라해 보자.

>>> number = raw_input("숫자를 입력하세요: “) 
숫자를 입력하세요:

위와 같은 질문을 볼 수 있을 것이다.


print 자세히 알기

우리가 앞서서 계속 사용해 왔던 print가 하는 일은 자료형을 출력하는 것이다. 지금껏 알아보았던 print의 사용예는 다음과 같다.

>>> a = 123 
>>> print a 
123 
>>> a = "Python" 
>>> print a 
Python 
>>> a = [1, 2, 3] 
>>> print a 
[1, 2, 3]


이제 이것보다 조금 더 자세하게 print에 대해서 알아 보기로 하자.

따옴표(")로 둘러싸인 문자열은 + 연산과 동일

>>> print "life" "is" "too short" --------------------  
lifeistoo short 
>>> print "life"+"is"+"too short" --------------------  
lifeistoo short

위에서 ①과 ②는 완전히 동일한 결과값을 보여준다. 즉, 따옴표로 둘러싸인 문자열을 연속해서 쓰면 '+'연산을 한 것과 마찬가지이다.


문자열 띄어쓰기는 콤마로

>>> print "life", "is", "too short" 
life is too short

콤마(,)를 이용하면 문자열간에 띄어쓰기가 된다.


한 줄에 출력하기

앞서 보았던 구구단 프로그램에서 보았듯이 한 줄에 결과값을 계속 출력하려면 print문과 콤마(,)를 함께 사용해야 한다.

>>> for i in range(10): 
...     print i, 
... 
0 1 2 3 4 5 6 7 8 9



출처 : http://codejob.co.kr/docs/page/43/