1. 프로그래밍 결과의 출력을 위한 print()함수
이전 포스팅에서도 잠깐 언급했던 질문이지만, 여기서 다시 질문해보겠다. 프로그래밍은 왜 하는 것일까? 머리 쓰기 귀찮아서 기계에게 일거리를 떠넘기기 위한 인간의 욕망이 표현된 물건일까?
어떻게 보면 그렇다. 과학 기술이 발달하면서 인간의 머리로는 계산하기 복잡한 수식이 너무나도 많아졌기 때문에.
(이런 걸 보면 천문학자 케플러는 대단한 사람이다. 현재의 컴퓨터가 단 몇 초면 산출해내는 천체의 궤도 방정식을 몇십 년 동안 붙잡으면서 풀어냈다고 하니...)
이런 복잡한 계산을 풀게 할 목적으로 컴퓨터가 만들어졌고, 사람들은 자신이 알아내고자 하는 결과를 얻기 위해 컴퓨터에게 명령을 내리는 프로그래밍을 시작하게 된다. 예를 들면, 필자가 x-3=6이 되는 x의 값을 알고 싶다고 컴퓨터에게 프로그래밍 명령어를 전달하면, 컴퓨터는 해당 연산을 처리한다.
하지만, 컴퓨터는 x가 9라는 결과값을 필자에게 보여주지 않는다. 왜냐? 필자가 계산만 해달라고 했지, 출력하라고 명령을 내리지 않았기 때문이다. 프로그래밍한 결과값을 모니터로 확인하기 위해서는, 컴퓨터에게 "결과값을 모니터로 출력해 줘"라는 명령도 함께 전달해야 한다.
그리고 이런 역할을 하는 파이썬의 함수가 바로 print()다.
2. print()함수의 사용방법
print() 함수는 print 옆의 괄호안에 들어가 있는 모든 것을 출력한다. 출력은 크게 다음과 같이 3가지 방법으로 진행할 수 있다.
(1) 문자열의 출력
문자열은 말 그대로 몇 개의 문자가 주르륵 연결된 것을 말한다. 가령 "안녕하세요"나, "반갑습니다"도 문자열에 해당한다. 그리고 이런 문자열은 다음과 같은 형식으로 컴퓨터에게 명령을 내리면 된다.
----------------------------------------
print("출력을 원하는 문자열 입력")
----------------------------------------
그럼, 위의 내용을 토대로, "Hello, World!"라는 문장을 출력해보자.
제대로 출력 되었다면 오른쪽의 첫 번째 줄과 같이 나타날 것이다.
유의해야 할 사항은 괄호안의 문자열은 반드시 쌍따옴표(")나 홑따옴표(') 쌍으로 둘러쌓여야한다는 점이다. 만약 따옴표 없이 위의 명령 구문을 작성한다면, 현재 상태에서는 문법이 잘못되었다는 SyntaxError가 발생한다.
Hello, World가 잘 출력되었다면, 자신의 이름, 주소 등을 넣어서 출력을 진행해보자.
(2) 숫자의 출력
숫자의 출력은 문자와 달리 따옴표가 필요하지 않다. 단순히 숫자 2를 출력하고 싶다면 print(2)라고 명령어를 쓰면 된다.
숫자를 이용해 연산 결과를 출력하는 것도 가능하다. 만약, 2와 4의 곱을 출력하고 싶다면, print(3 * 4)라고 쓰면 된다. 각 연산자의 사용 방법은 오른쪽의 그림과 같다.
덧셈 | 뺄셈 | 곱셈 | 나눗셈 | 몫 | 나머지 |
+ | - | * | / | // | % |
정수 뿐만 아니라 실수형태도 출력이 가능하다. 만약 원주율인 3.14를 출력하고 싶다면, print(3.14)라고 명령어를 입력하면 된다. 실수형도 정수형과 마찬가지로 마로 직전에 언급한 연산자를 사용해 연산 결과를 출력할 수 있다. 실수의 출력은 직접 해보자.
(3) 변수 사용과 변수값 출력
구구단을 생각해보자. 일반적으로 구구단 하면 떠오르는 형태는 2단, 3단, 4단과 같은 정수의 배수 집합이다. 하지만, 필자는 1927.394857392단이라는, 조금 색다른 구구단을 제안하려 한다. 자, 그럼 배운 내용을 토대로, 1927.394857392의 구구단을 출력해보자.
배운 내용을 토대로 하자면, 왼쪽의 그림처럼, print()함수 내에 일일이 글자를 타이핑해야한다. 막노동이 따로 없다. 몸이 고되니, 꾀를 부리고 싶다. 갑자기 이런 아이디어가 떠오른다.
저 1927.394857392라는 녀석을 컴퓨터가 기억하도록 하고, 내가 필요할 때마다, 저 숫자를 호출할 수 있다면 좋을텐데...
이러한 필요성에 의해 나타난 개념이 변수다. 변수는 어떠한 값을 담는 상자라고 생각을 하면 된다. 만약 컴퓨터가 a라고 불리는 상자에 저 악마와 같은 숫자 "1927.394857392"를 저장하고, 저 숫자가 필요할 때마다 a를 호출하면 되는 것이다. 백문이 불여일견이라고, 코드를 한 번 보자.
변수를 사용하지 않을 때보다, 아주 조금 더 편하게 구구단을 출력할 수 있게 되었다.
변수의 출력 형태를 보면, 특이한 점을 하나 발견할 수 있는데, 바로 문자열을 출력할 때와 달리 따옴표를 쓰지 않았음에도 불구하고 에러가 발생하지 않는다는 것이다. 이 예제를 통해, 우리는 다음과 같은 결론에 도달할 수 있다.
----------------------------------------------------------------------------------
* 변수로 사용되는 문자와 문자열을 따옴표 없이 print()함수에 넣어 출력하면, 변수에 저장된 값이 나온다.
----------------------------------------------------------------------------------
변수 값을 print()함수로 출력하기 위해서는 미리 변수가 선언이 되어야 한다. 변수가 선언이 되어야 한다는 소리는, 사용할 상자의 이름에 저장할 값을 지정하는 작업을 말한다. 위의 예에서는 a = 1927.394857392 라고 작성한 부분이, 변수를 선언하는 코드가 된다.
변수 안에는, 숫자뿐만 아니라 문자열도 저장이 가능하다. 문자열을 변수 안에 저장하는 코드의 포멧은 다음과 같다.
---------------------
변수명 = "문자열"
---------------------
문자열 출력을 설명하는 부분에서, print()함수를 이용해 따옴표 없이 문자열을 출력하는 코드가 왜 에러를 출력하는지 이제 충분히 이해를 할 수 있을 것이다.
그럼, 자신의 성별과, 거주하는 도시를 변수로 선언한 뒤, 출력해보자. 필자는 다음과 같이 진행했다.
해당 변수명을 print()함수에 넣어 사용하니, 필자가 미리 선언한 주소와 성별이 동일하게 출력되는 것을 볼 수 있다.
여기서 한 가지!!! 변수에 사용하는 변수명(왼쪽의 예에서는 address와 gender)은 프로그래밍 하는 사람이 가장 잘 이해할 수 있는 단어를 사용하는 것이 좋다. 만약 필자가, a = "서울시" b = "남성" 이라고 변수를 선언하면, 변수 a와 b가 무엇을 의미하는지 알아보기가 굉장히 힘들어진다. 지금은 변수가 2개 뿐이라 그렇지, 조금 더 복잡한 프로그램을 만들다보면, 변수의 용도가 헷갈릴 수 밖에 없다.
변수명으로 사용 가능한 형태는 몇 가지를 제외하면 제한이 없다. 제한되는 사항은 다음과 같다.
1. 숫자 또는 특수기호로 시작하면 안된다.
2. 띄어쓰기가 있으면 안된다.
3. 예약어로는 변수명 선언이 불가능하다.
* 예약어(keyword)는 프로그램 자체에서 어떤 기능을 가진 변수 또는 함수를 사용하기 위한 단어를 의미한다. 만약 필자가 print라는 변수명을 만들어 숫자 3을 변수에 선언하면, 이 변수는 출력이 되지 않는다.
왼쪽의 화면은 위에서 언급한 제한되는 형태의 변수명을 사용한 결과이다. 첫 번째와 두 번째는 각각 Syntax Error, 즉 잘못된 문법을 사용하여 출력된 에러다.
마지막 코드는 에러가 발생하기는 하지만, 앞의 두 코드와 달리 TypeError가 나온다. 사실 문법적으로 오류가 있는 코드는 아니지만, print라는 이름이 화면에 결과를 출력하는 기능을 가진 함수를 지칭하는 이름이라, 컴퓨터가 혼돈을 일으킨 것이다.
컴퓨터는 저 print(print)라는 단어를 보고, 필자가 원하는 것이 print()함수의 화면 출력 기능인지, 아니면 print 변수에 저장된 3을 호출하는 것인지 알 수 없기 때문이다.
다음 포스팅에서는 오늘 알아본 print()함수와 변수를 응용하는 방법에 대해 알아보겠다.
FIN.
'Python > Python Basic' 카테고리의 다른 글
6. Python - 변수 자료형 1, LIST(목록) (0) | 2019.07.26 |
---|---|
5. Python - print() 함수 사용법 3 (0) | 2019.07.17 |
4. Python - print() 함수 사용법 2 (0) | 2019.07.09 |
2. Python의 설치와 프로그래밍의 원리 (0) | 2019.07.02 |
1. Python. (0) | 2019.06.30 |
댓글