권장 독자: 프로그래밍을 처음 시작하려는 사람들
캡처 밑 파랑색 버튼을 누르면 그 영상으로 즉시 이동 가능.
고대 사람들은 의사소통을 위해 몸짓을 사용헀다. 지식이 없는 사람과도 소통이 가능했지만, 표현할 수 있는 범위가 너무 적었음. 그래서 더 많은 표현을 하기 위해 언어를 발명함. 언어를 학습해야 한다는 진입장벽에도 불구, 훨씬 많은 표현이 가능하다는 강력한 장점이 있기에 현재도 언어를 사용함.
그 후에 문자와 인쇄술의 발명으로, 기록이 가능해짐. 기록으로 인해 시공간의 한계를 극복하는 게 가능해지면서 문명이 발전함.
이렇게 생긴 기계를 조작하는 한 가지 방법은 버튼(= 바디랭귀지)을 누르는 것임. 하지만 기계가 복잡해지면 복잡해질 수록 버튼만으로 표현하기 힘들어짐. 그래서 인간은 버튼 대신 기계와 소통할 수 있는 언어를 만들어냈고, 우리는 그것을 코드라고 부름. 그리고 여러 줄의 코드를 순서대로 작성하여 작업을 처리할 수 있도록 만든 것이 프로그램임. 프로그래밍은 이 프로그램을 만드는 일.
여러 프로그래밍 언어가 있지만 Python을 사용하는 이유는 인기있는 언어라서. 인간의 언어도 많은 사람들이 써야 가치가 있듯이, 많은 개발자들이 사용하는 Python은 가치가 높은 언어임.
Python을 사용하는 방법은 2가지. 직접 설치하거나, 온라인 서비스를 이용하기.
왼쪽 아래 윈도우 검색 창에 cmd라고 입력 후 명령어로 python 혹은 python3를 입력했을 때
이런 식으로 컴퓨터 출력이 나온다면 이미 설치가 되어있는 것. 다른 출력이 나온다면 되어있지 않음.
애플 맥의 경우 오른쪽 위에 작은 돋보기 아이콘을 눌러 terminal 앱을 실행. 똑같이 python이나 python3라고 입력해 출력이 아래와 같이 나온다면 이미 설치되어있음. (만약 버전이 2라면 새로 설치해야 함.)
설치가 안 되어있을 경우 구글에 Python이라고 검색해서 Welcome to Python.org를 클릭.
그럼 위와 같은 웹사이트가 뜨는데, 가운데 파란 줄 두 번째 칸에 있는 Download를 클릭해 Python을 설치.
Python 설치 후 코드 에디터를 설치해야 함. (코드 에디터를 이미 설치했다면 이 부분은 패스) 이 수업에서는 Visual Studio Code를 사용할 것임.
설치 후에는 상단 위에 Terminal을 누르고 New Terminal을 누르면 아까 봤던 검은 색 명령 창이 뜸. 성공적으로 명령 창이 떴다면 사용 준비 완료!
Python을 직접 설치하기 싫다면 Jupyter notebook을 활용하여 온라인에서 Python을 실행할 수 있음.
자세한 설치 방법은 위 영상에서 확인.
ideone.com은 온라인으로 코드를 실행할 수 있는 플랫폼임. 코드를 입력하고 하얀 상자 오른쪽 아래에 초록색 버튼을 누르면 출력 결과를 확인할 수 있음.
Python 설치를 완료했다면 이제 실행해야 함. 실행하는 방법은 2가지가 있음.
어떤 방법이든 작성한 코드는 컴퓨터의 언어로 변환해주는 Python Interpreter로 전달되고, 운영체제를 통해 컴퓨터가 조작됨.
Shell의 다른 이름은 interactive mode. 인간과 기계가 서로 상호작용하면서 코드를 작성함.
파이썬을 Shell에서 실행하면 프롬프트 부분(밑에 3개 있는 꺽쇠)에 코드를 적을 수 있음.
print(1+1) print(len("hello world"))
다음과 같은 명령어를 쓰면 각각 2와 11이라는 결과가 나옴. 코드 한 줄을 쓸 때마다 결과를 보여주기 때문에 마치 대화하듯 코드를 쓸 수 있음.
참고) 만약 여러 줄의 코드를 한 줄 안에 쓰고 싶다면 세미콜론(;)을 활용할 수 있음. print(1+1); print(2+2)라고 쓰면 여러 명령을 쓸 수도 있음.
Shell에서 쓰인 코드를, 껐다 켜진 후 컴퓨터는 기억하지 않음. 만약 반복적으로 사용되는 코드가 있다면 파이썬 파일에 저장할 수 있음.
전에 설치했던 VS Code를 열고, 파이썬 파일을 저장할 폴더를 만든 뒤 VS Code에 드래그하면, VS Code에서 파일을 생성할 수 있게 됨. (자세한 것은 영상 참조)
파이썬 파일을 만들면 VS Code 내에서 파일을 수정할 수 있게 됨. 코드를 작성하고 터미널을 실행한 뒤 (터미널 실행 방법은 영상 참조) python3 파일 이름 (예시: python3 test.py)라고 적으면 실행 뒤 결과가 출력됨. 실무에서는 이렇게여러 줄의 코드를 파일의 형태로 저장함.
컴퓨터가 저장하는 데이터에는 다양한 형태가 있음. 형태마다 연산을 사용하는 방법이 다름. 데이터의 형태를 자료형이라 부르며, 가장 (기본적이자) 대표적인 자료형은 숫자와 문자가 있음. 숫자에서 1 + 1은 결과가 2지만, 문자에서는 a + a의 결과는 aa가 됨. 즉, 같은 더하기더라도 자료형에 따라 연산의 결과가 달라짐. 앞으로 가장 유명한 3가지 자료형을 배울 것임.
컴퓨터는 애초에 숫자 계산을 위한 기계에서 시작됨. 당연히 첫 번째 자료형은 숫자임. 숫자 안에서 또 2가지 자료형으로 나눌 수 있는데, 소수점이 없는 정수(= int), 소수점이 있는 살수(= float)
# 아래 3줄은 모두 정수(= int) print(-1) print(0) print(1) # 아래 1줄은 실수 (=float) print(1.1)
위 코드에서 알 수 있듯이 int와 float를 구분하는 것은 소수점의 유무임.
print('1+1', 1+1) print('2-1', 2-1) print('2*2', 2*2) print('4/2', 4/2) ### 출력 결과 #1+1 2 #2-1 1 #2*2 4 #4/2 2.0
이 4줄의 코드를 실행해보면 각각 더하기, 빼기, 곱하기, 나누기에 해당하는 사칙연산을 해줌.
사칙연산은 파이썬을 다운로드받으면 바로 사용할 수 있지만, 조금 더 어려운 계산(팩토리얼이나 원주율이라든가...)을 하고 싶으면 모듈을 가져와야함. 모듈은 남들이 적은 코드의 모음집이라고 생각하면 됨. (자세한 것은 나중 챕터에서 후술)
import math print('math.sqrt(4)', math.sqrt(4)) #4의 제곱근 계산 print('math.pow(4,2)', math.pow(4,2)) #4의 제곱 계산 import random print('random.random()', random.random()) #0과 1사이의 무작위 숫자 게산 ### 출력 결과 # math.sqrt(4) 2.0 # math.pow(4,2) 16.0 # random.random() 0부터 1사이의 무작위 숫자
math 모듈에서는 수학과 관련된, random 모듈에서는 무작위 숫자와 관련된 계산을 진행할 수 있었음. 파이썬에서는 여러 연산들을 활용하여 숫자를 계산할 수 있음.
print(Hello) # 오류 발생 print('Hello') print("Hello") print(""" Hello world """) print('He said, "I am hungry!"')
위 사진에서 첫째 줄은 오류가 발생함. Hello란 글자가 print같은 명령인지, 혹은 단순한 글자인지 판단할 수 없기 때문임. 만약 컴퓨터한테 글자를 알려주고 싶으면 따옴표로 감싸줘야 함. (큰 따옴표, 작은 따옴표 무관)
근데 따옴표를 한 번만 쓰면 줄바꿈을 사용할 수 없음. 그래서 줄바꿈을 넣고 싶다면 따옴표를 3번씩 써줄 수 있음. (위 코드의 6~9번째 줄)
만약 따옴표를 문자열의 시작과 끝을 나타내는 용도가 아닌, 그저 기호로써 쓰고 싶다면 다른 따옴표를 쓰면 됨. 작은 따옴표로 시작한 문자열은 반드시 작은 따옴표로만 끝날 수 있음. (큰 따옴표도 동일) 그 외의 내용은 모두 문자로 취급.
print('ab'+'cd') # 출력 결과: abcd print('Hello world' * 3) #출력 결과: Hello worldHello worldHello world print(len('Hello world')) #출력 결과: 11
문자열도 연산이 가능한데, 문자열과 문자열을 더할 경우 두 문자열을 붙인 문자열이 됨. 만약 문자열과 숫자를 곱할 경우, 숫자만큼 문자열들을 더한 새로운 문자열이 됨.
문자열에서만 가능한 연산도 있는데 len이라는 연산을 사용하면 문자열의 글자수를 알 수 있음.(코드의 5번째 줄)
리스트는 숫자와 글자와 달리 어떠한 값을 가지는 자료형이 아님. 대신 (서랍처럼) 데이터들을 분류하거나 정리하는데 쓰이는 자료형임.
students = ["egoing", "sori", "maru"] grades = [2, 1, 4] print(students[2]) # 출력 결과: maru print(students[1]) # 출력 결과: sori print(students[0]) # 출력 결과: egoing print(len(students)) # 출력 결과: 3
여러 값들을 적은 뒤 [] (대괄호) 안에 넣고 콤마로 값을 구분하면 리스트를 만들 수 있음. (앞에 있는 students = 는 무시) 만약 리스트 안에 있는 특정 값이 필요할 경우 (4~6번째 줄처럼) 위치를 활용해 값을 꺼내올 수 있음. 단, 위치의 시작은 1이 아니라 0임. 위 코드에서 egoing, sori, maru의 위치는 1, 2, 3이 아니라 0, 1, 2다.
프로그래밍 지식은 엄청 방대하고, 모두 외우기에는 시간이 너무 오래 걸림. 때문에 기본적인 지식들 외에는 필요할 때마다 검색해서 사용함.
파이썬 홈페이지에서 빨간 네모 친 부분을 클
아래쪽에 있는 Python 3.X Resources에서 노란 형광펜 부분을 클릭.
그럼 이런 페이지로 이동하게 됨. 이 페이지는 파이썬의 공식 사용설명서임.
제품을 만들 때는 부품과 접착제가 필요함. 부품은 기능을 가지고 있고, 접착제는 부품들을 결합하여 새로운 기능을 만들어냄. 프로그래밍에서의 부품은 Library라고 얘기함. Library에 대한 소개들을 Library Reference에서 볼 수 있음. 그리고 Library와 Library를 연결하는 방법을 Language Reference에서 소개함. 하지만 초급자를 위한 친절한 설명도 없기 때문에 다 읽어보는 사람은 없고, 필요한 부분만 찾아서 활용하는 경우가 대부분임.
만약 새로운 지식을 처음 접하는 상황(예컨대 다른 프로그래밍 언어라던가)이라면 모든 설명서에서는 초보자를 위한 Tutorial이 있음. 튜토리얼을 보면서 새로운 지식 습득하는 것을 추천.
공식 사용설명서 말고도 구글에서 검색을 통해 필요한 것을 알아낼 수도 있음. 예를 들어 python에서 무작위 숫자를 고르는 법을 알고 싶다면 python 랜덤 이렇게 검색해서 정보를 얻을 수도 있음. (그리고 경력 있는 개발자들도 이렇게 매일매일 검색함.)
아이가 태어나면 이름을 짓듯이, 데이터가 새로 생겨나면 데이터의 의미를 알기 위해 이름이 필요함.
이 코드의 결과는 1000이란 것을 알 수 있음. 하지만 저 10000의 의미를 알기 굉장히 어려움.
하지만 위 사진처럼 데이터에 이름을 각각 짓는다면, '아 이 코드는 부가세를 계산하는 코드구나!'라고 바로 알 수 있음. 변수는 데이터의 의미를 알려주기 위해 있는 개념임.
print('hi, sori.... bye, sori.') ########################### name = 'sori' message = 'hi, ' + name + '.... bye, '+name+'.' print(message)
위 두 개의 코드는 같은 역할을 하지만, 내가 이름만 바꾸고 싶을 때 위 코드는 sori를 일일이 찾아 바꿔야 하는 반면, 아래 코드는 name만 바꾸면 끝임. 변수는 데이터의 의미를 알기 위해, 그리고 코드를 편하게 쓰기 위해 존재함.
예상치 못한 오류, 혹은 의도하지 않은 동작을 버그라고 함. 프로그래밍을 하면서 수많은 버그들이 나타나고, 버그가 없는 프로그램은 없다는 말이 나올 정도로 많은 개발자들은 버그와 씨름함. 버그에는 두 가지 종류가 있는데, 단순 오타나 문법적인 문제가 있는 문법적 오류, 그리고 논리적으로 문제가 있는 논리적 오류. 문법적 오류는 프로그램이 실행되기 전에 컴퓨터가 이상하다는 것을 감지해주지만, 논리적 오류는 컴퓨터가 감지할 수 없어 사람이 일일이 찾을 수밖에 없음.
때문에 대부분의 코드 에디터에서는 버그를 쉽게 찾을 수 있도록 에디터에서 디버깅 툴을 제공함.
VS code의 디버깅 툴 활용은 위 영상을 확인.
모든 프로그램은 입력을 받아서 처리해서 출력함. 우리는 지금까지 print라는 명령을 활용해 모니터에 출력했음. 그런데 데이터의 입력을 받아본 적은 없음. 여기서는 데이터의 입력을 받아보는 방법을 알아보겠음.
name = 'sori' message = 'hi, ' + name + '.... bye, '+name+'.' print(message) ################################ name = input('name: ') message = 'hi, '+ name + ' .... bye, '+name+'.' print(message)
위 두 코드는 비슷하지만 첫째 줄과 다섯째 줄이 다름. 위 코드는 name 안의 데이터가 고정이지만, 아래 코드는 프로그램을 실행하면 컴퓨터가 입력을 기다리고, 입력한 데이터가 name에 저장이 됨. 즉, 입력에 따라 출력이 달라지는 프로그램이 되었다는 뜻임. 입력을 받기 위한 명령은 input을 활용하면 됨.
소프트웨어 개발자들은 특이한 것이, 본인이 개발한 코드를 다른 사람들에게 무료로 공유함. 즉, 남이 작성한 무료 코드를 사용해 프로그램을 개발할 수도 있음. 다른 사람들의 코드를 가져오는 법을 알아보겠음.
import random print('random.random()', random.random())
위 코드에서 import는 남이 만들어놓은 코드 덩어리를 가져오겠다는 뜻. 누군가가 무작위 숫자와 관련된 코드를 작성했고, 그 코드를 random이라는 라이브러리로 만들어 공유했고, import는 random 라이브러리를 사용하겠다는 뜻. 파이썬은 여러 라이브러리를 기본적으로 설치해놓지만, 파이썬에 설치되어있지 않은 라이브러리를 쓰고 싶을 때가 있음.
예를 들어, 파이썬을 통해 데이터 분석을 하고 싶을 경우 pandas라는 라이브러리가 필요한데, 이 라이브러리는 기본적으로 설치되어있지 않음. 그럼 라이브러리를 따로 설치해줘야 함.
pypi.org라는 사이트에서 어떤 라이브러리가 있는지 볼 수 있음. 그리고 설치하고 싶다면, pip를 활용해서 설치받을 수 있음.
VS code에 python3 -m pip install (패키지명)을 적어줌. (지금은 python3 -m pip install pandas) 그러면 import pandas 명령어를 사용할 수 있음.
pandas를 설치받은 후 pandas 활용은 영상 참고.
수업을 마친 후 어떻게 공부해야할지 요약하면, 먼저 파이썬을 활용해 본인만의 프로그램을 만들어볼 것. 학점 계산기같은 간단한 프로그램이라도 괜찮음. 그 이후에는 Python의 제어문을 공부해볼 것. 경우의 수를 나누어 명령을 달리해줄 수 있게 해주는 강력한 기능임. 그 다음에는 Python 함수를 공부해서 본인만의 명령을 만들어보는 법을 배워보길. 그 다음에는 본인이 만들어보고 싶은 것을 상상해보면서 길을 찾아나갈 수 있을 것임.
Last Updated:
Summarize & share videos seamlessly
Loading...