본문 바로가기

Lecture/Python Quest

Python Quest 2: Variables

강의주제:

1) Computer: File extension

2) Python: variables

3) Python: Function - print

4) Python: comments in the program

 

우리가 흔히 보는 파일들은 이상하게도 거의 대부분 filename.extension의 형태를 가지고 있다. (예: readme.txt)

파일 이름은 쉽게 이해가 가지만 뒤의 확장자는 세글자로 이루어진게 대부분이다. 우리는 이 확장자를 통해 그 파일이 어떤 종류인지 쉽게 파악할 수 있다. 매우 흔히 잘 알려진 확장자의 종류를 몇 가지 살펴보자면,

txt = 텍스트 파일. 메모장이나 글자 편집기를 이용해 파일을 열어보면 사람이 읽을 수 있는 형태의 글자들을 저장.

jpg = 이미지 파일. 이미지 편집기나 이미지 뷰어로 볼 수 있는 파일.

 

Python 프로그램을 저장하는 파일 역시 텍스트 파일이지만, Python을 위해 만들어졌다는 것을 알려주기 위해 우리는 파일의 이름 마지막에 'py' 라는 확장자를 붙일 것이다. (예: Hello World.py)

 

윈도우 사용자라면 파일 확장자를 숨기는 기능을 해제하는 걸 추천한다.

 

Variables (변수)

Variable 이란 한국말로 변수 라고 불리운다. 변수의 변은 '變' (변할 변), 말그대로 변하는 녀석이다.

 

지난시간 우린 파이썬 인터프리터를 설치하고 Hello World라는 글자를 화면서 출력해봤다. Hello World 대신 Hello Python, Hi World 등 여러가지를 출력하려면 어떻게 해야 할까. 쉽게 생각하면 글자 그대로 출력을 할 수도 있겠지만, 그래서는 나중에 사용자로부터 글자를 입력받는 상황이나 여러 조건에 따라 다른 글자를 출력해야 할 때 매우 불편하다.

 

Python에서 사용하는 변수를 생성, 초기화하는 방법은 다음과 같다.

var = something
# var는 변수
# something에는 내가 원하는 값

variable은 아주 쉽게 생각하면 대명사쯤 보면 되겠다.

a = "Hello World" 라고 한다면, a를 "Hello World" 라고 부를께! 라고 컴퓨터한테 알려주는 것이다.

 

위에서 변수의 '생성' '초기화' 등의 단어를 썼다. 하나씩 살펴보자.

 

생성이라는 것은 컴퓨터한테 내가 부르고 싶은 말을 알려주는 것이다. 등호 (=) 왼쪽의 녀석들이 그것이다.

그리고 초기화라는 것은 생성한 녀석에게 바로 무엇인지 알려주는 것이다.

예를 들면,

One = 1				# One이라는 변수를 생성, 1이라는 값을 가지기로 약속
Pi = 3.14			# Pi라는 변수를 생성, 3.14라는 값을 가지기로 약속
MyDogName = "Puff"		# MyDogName 이라는 변수를 생성, Puff라는 글자를 가지기로 약속

그렇담 변수를 가지고 무엇을 할 수 있을까?

퀘스트를 거듭하면 알게 되겠지만, 무궁무진한 것을 할 수 있다. 지금까지 배운 것을 (Hello world를 print()함수를 이용해 출력) 응용한다면, 변수를 만들어 여러가지 글자들을 넣어놓고 그 변수를 출력할 수 있다.

 

print("Hello World")

를 변수를 이용해 출력한다면,

MyMessage = "Hello World"

print(MyMessage)

프로그래밍에서의 function이란 '함수'라고 한다 (기능이 아니다 기능이). 함수라는 것은 중학교, 고등학교에서 배우는 수학과 밀접한 관련이 있지만 (지겹도록 볼 f(x)=...) 슬쩍 생략하도록 하자.

 

아주아주 쉽게 설명하면 function이란 매직 박스라고 생각하면 된다.

어떤 숫자를 넣으면 그 숫자를 두번 곱해 보여주는 작은 상자를 생각해보자.

2를 집어넣으면 4가 나오고, 3을 집어넣으면 9가, 4를 넣으면 16이 나올 것이다.

 

간단한 이해를 돕기 위해 밑의 그림을 보자.

그림출처: http://hanaloum.blogspot.com/2013/12/blog-post_10.html

함수라고 하는 것은,

1) 입력을 받아 (x=3)

2) 일련의 과정을 실행 (입력된 값을 두번 곱한다)

3) 결과를 주는 (9)

녀석들이다.

 

Python에서 함수는 함수이름, 그리고 소괄호를 붙인다. 함수 이름을 가지고 우리는 그 함수를 이용하고, 소괄호는 입력을 무엇으로 줄지를 결정한다. 물론 어떤 함수들은 입력을 받지 않아도 되고, 어떤 함수들은 출력이 필요치 않을 수 있다.

우리가 처음 가지고 놀았던 print()도 당연히 함수이다.

 

print() 함수는 함수의 이름 그대로 출력을 담당한다. 파이썬 홈페이지 (python.org) 의 Documentation 을 보면 print()함수를 이렇게 정의하고 있다.

function print()

VS code에서도 print()함수를 이렇게 알려주고 있다.

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

param value

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.

당연히 직접 함수를 만들 수도 있다. 나중 퀘스트에서 해보기로 하자.

 

Comments

프로그램을 만들다 보면 코드에 대한 설명을 해야 하는 경우나, 프로그램이 실행하게 하고 싶지 않은 코드들이 있다. 프로그램에 지장을 주지 않으면서 코드에 넣는 것거나 지우지 않고 코드가 실행되지 않게 만드는 것을 commenting, 그 반대의 경우를 (comment 된 코드를 다시 프로그램이 실행하도록) uncommenting이라 한다.

 

Python은 '#' 를 이용해 코드를 commenting한다. # 기호는 number sign, pound sign, hash, sharp, octothorpe, crosshatch 등 여러가지 이름으로 불리므로 편한대로 읽으면 되겠다. 숫자를 많이 사용하는 분들은 number sign, 전화기를 많이 쓰는 사람들은 pound sign, SNS를 많이 이용한다면 hash, 악보나 음악과 관련이 많다면 sharp 등등.

 

#의 역할은 그 줄에서 # 뒤의 모든 글자를 프로그램 실행에서 제외한다.

a = "Hello"
b = "World"
c = "This will be ignored" 		# comment can be here

print (a, b)
# print (c) - this will not run

만약 여러 줄을 comment로 처리하고 싶다면 모든 줄마다 #를 넣어야 한다. 다른 프로그램들은 여러줄을 한번에 comment 처리하는 키워드가 존재하지만 python은 없다.. (원한다면 if false: 등으로 처리해야 한다)

 

프로그램 개발 툴은 이런 불편함을 쉽게 처리해준다. VS Code 에서는 Ctrl + / 키가 그 역할을 해준다.

 

다음 퀘스트에서는 변수들의 여러가지 형태를 공부해보자.

'Lecture > Python Quest' 카테고리의 다른 글

Python Quest 5: Loop (while, for)  (0) 2019.06.03
Python Quest 4: If Else  (0) 2019.05.17
Python Quest 3: Data types  (0) 2019.05.17
Python Quest 1: 파이썬 설치, Hello World  (0) 2019.04.22