프로그래밍 관련
파이썬 강좌 4-5편. 사전(Dictionary)
파이썬 강좌 4-5편. 사전(Dictionary)
2013.09.081. 사전(Dictionary) 이번에는 사전(Dictionary)에 대해서 알아보도록 하겠습니다. 사전이란 우리가 흔히 알고있는 국어사전, 영어사전 등과 같이 단어와 뜻이 한 쌍이듯이 파이썬에서의 사전도 키(Key)와 값(Value)이 한 쌍으로 이루어져 있습니다. 이런 사전은 튜플이나 리스트와는 다르게 위치를 통한 인덱싱이 허용되지 않습니다. 그 대신, 키를 통해서 값을 찾을 수는 있습니다. 사전을 어떻게 만들 수 있는지 사전의 형식을 한번 보도록 합시다. >>> dic = {'name':'Smith', 'rank':1, 'average':97.5} >>> type(dic) >>> dic {'name': 'Smith', 'average': 97.5, 'rank': 1} 우선, 위 예제의 1행을 보시면..
파이썬 강좌 4-4편. 튜플(Tuple)
파이썬 강좌 4-4편. 튜플(Tuple)
2013.09.071. 튜플(Tuple) 이번에는 '튜플(Tuple)'에 대해 알아보도록 하겠습니다. 이 튜플이라는 녀석은 우리가 앞서 배웠던 리스트와 매우 비슷합니다. 튜플과 리스트가 서로 다른점이 있다면, 대괄호 대신에 소괄호로 묶어서 표현하며 리스트는 요소의 변경이 가능한 반면에 튜플은 요소의 변경이 불가능하다는 특징을 지니고 있습니다. 즉, 읽을 수는 있지만 쓸 수는 없는 것과 같은 것입니다. 우선, 아래의 예제를 통해 튜플이 어떠한 형태를 가지고 있는지 확인해보도록 합시다. >>> tuples = (1, 2, 3, 4, 5) >>> type(tuples) 위 예제의 1행을 보시면, 요소들을 소괄호로 묶었으며 쉼표(,)로 각각의 요소를 구분한다는 것을 확인하실 수 있습니다. 1행의 형식뿐만 아니라, 둘러싸고 있는 ..
파이썬 강좌 4-3편. 리스트(List)
파이썬 강좌 4-3편. 리스트(List)
2013.08.311. 리스트(List) 이번 편에서는 리스트(List)에 대해 알아 보도록 하겠습니다. 우리가 배울 파이썬에서의 리스트(List)란, 순서가 있는 값들의 나열이라고 할 수 있습니다. 리스트를 구성하는 값을 요소 혹은 원소라고 부르며 어떠한 타입의 값이든 리스트의 요소로 올 수 있습니다. 이는 한가지의 타입으로만 이루어진 리스트뿐만 아니라, 여러가지 타입의 데이터로 이루어진 리스트를 구성할 수 있다는 말입니다. 이러한 리스트를 만드는 방법은 간단합니다. 요소들을 대괄호로 둘러싸고, 요소와 요소의 사이에는 콤마(,)로 구분을 해주면 됩니다.>>> lst = [1, 2, 5, 'a', 'b'] >>> lst [1, 2, 5, 'a', 'b'] >>> type(lst) 리스트를 보니 왠지 모르게 편할것 같은 생..
파이썬 강좌 4-2편. 문자열(String)
파이썬 강좌 4-2편. 문자열(String)
2013.08.311. 문자열(String)이번에 알아볼 자료형은 문자열(String)이며, 문자열은 문자들의 모임, 문자를 나열한 것을 문자열이라고 합니다. 'a', 'b', 'c' 등과 같은건 문자라고 할 수 있지만 "abc"와 같이 문자들이 모이게 되면 이것을 문자열이라고 할 수 있습니다. 파이썬에서 문자열은 단일 인용부호(')나 이중 인용부호(")로 감싸주어 표현합니다. 주의하실 점은, 감싸줄 때는 단일 인용부호로 시작했으면 단일 인용부호로 끝나야 하며, 이중 인용부호로 시작했으면 이중 인용부호로 끝나야만 한다는 것을 기억하시기 바랍니다. 아래의 예는 모두 문자열이라고 할 수 있습니다. >>> type("ABCDEFGHI") >>> type('ABC') >>> type("1301##") 그리고 파이썬에서는 위 방법..
파이썬 강좌 4-1편. 수치 자료형(Numeric Data Type)
파이썬 강좌 4-1편. 수치 자료형(Numeric Data Type)
2013.08.261. 자료형(Data Type)은 무엇인가?이번 편에서는 자료형(Data Type)에 대해서 알아보도록 하겠습니다. 자료형은 말 그대로, 데이터의 형식을 말합니다. 파이썬에서는 수치 자료형부터 시작해서 문자 자료형, 튜플, 리스트, 사전 등 여러가지의 자료형이 존재하며, 자료형을 보고서 데이터가 어떠한 데이터의 형식인지 알 수 있습니다. 파이썬에 내장되어 있는 함수인 type이란 함수를 통해서 객체의 타입을 살펴보도록 하겠습니다. 이 type이란 함수는 객체의 타입을 보여주며, 아래와 같이 사용합니다. >>> type(33) >>> type(3.14) >>> type(['1', '2', '3']) >>> type(33331491491492) 위를 보시면 객체 33의 타입은 int로, 이는 정수(integ..
파이썬 강좌 3편. 변수(Variable)
파이썬 강좌 3편. 변수(Variable)
2013.08.241. 변수(Variable) 다른 언어들과 마찬가지로 파이썬에서도 변수(Variable)라는 개념이 당연히 존재하며, 이 변수라는 것은 임시로 혹은 영구적으로 값을 기억해두기 위한 저장소를 말합니다. 이러한 변수는 왜 필요한 것일까요? 이해를 돕기 위해 예를 하나 들어보도록 하겠습니다. 우리가 마을 근처의 마트에서 과자를 사려고 하여 천원 짜리 지폐를 들고 집 밖을 나섰다고 가정합니다. 근처 마트를 방문하고 나서 고른 과자의 가격이 600원이라고 하였을 때, 우리가 가지고 있는 돈인 1000원에서 600원을 뺀 나머지인 400원을 거스름돈으로 받게 됩니다. 이를 컴퓨터 상에서 표현한다고 한다면, 아래와 같을 것입니다.money = 1000 cookiePrice = 600 money = money - co..
파이썬 강좌 2편. 간단한 문법 살펴보기
파이썬 강좌 2편. 간단한 문법 살펴보기
2013.08.191. 간단한 출력 살펴보기 이번 편에서는 파이썬의 문법을 간단하게 살펴보도록 하고, 첫 시작은 간단하게 Hello, world!를 출력하는 코드를 살펴보도록 하겠습니다. 아래와 같이 IDLE에 입력하고 어떠한 결과가 출력되는지 유심히 살펴보도록 합시다. >>> print("Hello, world!") Hello, world! 코드만 보아도 어떠한 기능을 하는 코드인지 알 수 있을것 같죠? print는 말 그대로 출력 기능을 담당하는 함수입니다. 여기서 '함수'란 단어가 혹여나 수학 시간에 등장하는 함수를 일컫는게 아니냐는 의문이 들기도 하죠? 틀린 말도 아닙니다. 파이썬 상의 함수란 단어는 어떠한 입력 값을 넣어주면 그 입력 값에 대한 출력 값을 지닙니다. print 함수에 "Hello, world!"를..
파이썬 강좌 1편. 시작
파이썬 강좌 1편. 시작
2013.08.171. 시작이번에는 파이썬(Python) 강좌로 찾아뵙게 되었습니다. 다음 편부터 본격적으로 시작되는 파이썬 강좌에서는 어떠한 선행 지식도 필요 없이 아무것도 모르는 사람도 충분히 이해할 수 있도록 작성해 볼 생각입니다. 약간 무리가 있겠지만, 최대한 그러한 각오로 보다 쉽게 간단하게 설명하겠다는 것입니다. 작성되는 파이썬 강좌는 2.x 버전부터가 아닌 3.x 버전을 기준으로 설명되며, 필자가 파이썬을 누구에게 가르칠 실력은 되지 못하지만 그래도 최대한 이해하기 쉬운 내용으로 구성해보도록 노력하겠습니다. 서론이 길었네요. 우선은 파이썬에 대해 간략하게 알아보도록 하겠습니다. 파이썬은 1991년, 프로그래머인 귀도 반 로섬(Guido van Rossum)이 설계한 인터프리터식 언어입니다. 이 파이썬이라는 언..
C++/STL 강좌 2편. 함수 객체(Function Object)
C++/STL 강좌 2편. 함수 객체(Function Object)
2013.08.041. 함수 객체(Function Object)이번에는 함수 객체(Function Object)에 대해 알아보도록 하겠습니다. 함수 포인터에 이어 함수 객체는 어떠한 기능일까요? 쉽게 말하자면, 함수 객체는 객체가 함수처럼 동작한다 하여 함수 객체라고 할 수 있는데 우리가 전에 배웠던 연산자 오버로딩에서 ()라는 연산자를 오버로딩하여 객체를 함수처럼 쓸 수 있습니다. 우선은 함수 객체를 알아보기 전에, 간단히 () 연산자에 대해 짚고 넘어가도록 하겠습니다. 우리가 살펴볼 () 연산자는 함수 호출 연산자라고 불리며, 위에서 말했듯이 이 연산자를 오버로딩하게 되면 그 객체는 함수 객체라고 할 수 있습니다. 함수 호출 연산자를 한번 정의하여, 함수 호출 연산자가 도대체 어떤 녀석인지를 봐보도록 할까요? 아래의 ..
C# 고급 2편. 링크(LINQ)
C# 고급 2편. 링크(LINQ)
2013.07.15링크(LINQ) LINQ라고 들어보셨나요? 여기서 LINQ는 Language-Integrated Query의 약자로, 이는 통합된 질의 언어를 말합니다. 여기서 질의의 사전적 정의는 "의심나거나 모르는 점을 물음"이며, 이 정의 그대로 질의는 무엇에 대해 물어본다는 것입니다. 좀 더 자세히 말한다면, LINQ를 통해 컬렉션 형태를 띄는 모든 데이터에 질의를 할 수 있으며, 이 강력한 기능을 통해 복잡한 구문을 좀 더 간단하게 필터링하거나 정렬할 수 있다는 등의 특징을 지니고 있습니다. 어디 한번, LINQ가 어떤 강력한 기능을 지니고 있는지 천천히 살펴보도록 합시다. List intList = new List(); int[] numbers = { 1, 3, 4, 6, 5, 9, 8, 12, 15, 18,..
C++/STL 강좌 1편. 함수 포인터(Function Pointer)
C++/STL 강좌 1편. 함수 포인터(Function Pointer)
2013.06.071. 함수 포인터(Function Pointer)오늘은 번외편의 시작으로 함수 포인터(Function Pointer)에 대해 알아보려고 합니다. 포인터(Pointer) 앞에 함수(Function)가 붙으니 대충 어떠한 녀석인지 감이 잡히시나요? 당연히 함수를 가리키는 포인터가 있다는 것은 함수에도 주소가 존재함을 알 수 있습니다. 함수명은 함수의 시작 주소를 의미하고, 이 함수 포인터를 선언할 때에는 함수 시그너쳐(signature)와 같도록 선언해야 합니다. 다른 말로는 원형과 같도록 선언해야 한다고 말할 수 있겠네요. 만약에 아래의 원형을 갖는 함수를 가리키는 포인터를 선언하려면 어떻게 해야 할까요? int sum(int a, int b) 반환형은 int이며, 매개변수는 int, int임을 알 수 있..
정규 표현식(Regex) 9편. 전후방탐색(lookaround)
정규 표현식(Regex) 9편. 전후방탐색(lookaround)
2012.12.271. 전방 탐색(lookahead) 전방 탐색(lookahead)이란 작성한 패턴에 일치하는 영역이 존재하여도 그 값이 제외되어서 나오는 패턴입니다. 전방 탐색 기호는 ?= 이며, = 다음에 오는 문자가 일치하는 영역에서 제외됩니다. 또한, 전방 탐색은 하위 표현식과 같이 소괄호로 감싸주어야만 합니다. 우선은 한번 보도록 합시다. Reg. Expression: .+(?=:) Text: http://www.abc.com https://www.abc.com http://www.abc.net 위에 쓰인 정규 표현식을 살펴보자면, 아무 문자가 한번 이상 연속적으로 등장하고 콜론(:) 문자가 등장하는 문자열 중에서, 콜론(:) 문자는 일치하는 영역에서 제외됩니다. 만약, 전방 탐색 기호를 쓰지 않고 콜론을 그대로..