본문 바로가기

전체 글

[python 13] 데이터 구조 - 튜플, 딕셔너리 이전의 글에서 파이썬에서 제공하는 가장 중요한 데이터구조로서 리스트(List)를 살펴보았다. 리스트 이외에 파이썬은 튜플(Tuple), 딕셔너리(Dictionary), 셋(Set) 등의 데이터 구조를 제공하고 있다. 어쨌거나 모든 데이터 구조는 리스트를 기본으로 하고 있다. 리스트의 기본적 특성을 이해했다면, 공부하는데 전혀 어려움이 없을 것이다. 반대로, 튜플, 딕셔너리, 셋 등을 공부하면서 리스트에 대한 이해를 좀 더 높일 수 있는 기회가 되기도 한다. 이번 글에서는튜플과 딕셔너리에 대해서 살펴보도록 하자. (Set 은 다음 기회에...) 1. 튜플(Tuple) 튜플은 리스트와 동일하다. 단지, 튜플을 구성하는 데이터들을 항(item) 이라고 부르는데, 튜플은 한번 선언되면 튜플을 구성하는 항의 값을.. 더보기
[python 12] 리스트(list) 데이터 구조 데이터 구조 (data structure) 앞에서 여러 데이터들을 살펴보고, 각 데이터를 저장하는 수단으로서 변수를 살펴보았다. 데이터와 변수 간의 관계를 되돌아 본다면, 1개의 데이터를 저장하기 위해서는 1개의 변수가 필요했었다. 즉, 하나의 이름(변수명)으로는 1개의 데이터 밖에 저장하지 못한다는 제한이 존재한다. 우리가 실제 데이터를 다루다 보면, 여러개의 데이터를 동시에 다루는 경우가 많다. 몇가지 예를 보자. 나는 A 라는 기업의 판매팀장이다. 작년 한해의 총매출을 집계하기 위해 월별 판매액을 총합하는 연산을 해야 한다. 위의 "나"는 몇 개의 데이터를 다루고 있나? 작년 1월부터 12월 까지의 월별 매출 데이터 12개와 그 데이터를 모두 더한 총매출 데이터 1개 해서 총 13개의 데이터를 다루.. 더보기
[python 11] 변수에 대한 리뷰 변수(variables)에 대해 다시 한번 더 고민해 보자. 파이썬에서 변수란 "어떤 데이터를 가리키는 이름"이라고 했었다. 이는 다음 그림과 같이 표현할 수 있겠다. a=5 라는 문장은 "5 라는 데이터가 새로 만들어 졌다. 이제 그 데이터를 a 라는 이름으로 부르겠다"는 뜻이다. 이 문장이 실행된 다음에 만약에 a=3 이라는 문장이 실행되면 이 문장은 "(원래 다른 데이터를 가리키던) a 라는 이름을 이제 3이라는 데이터를 가리키는데 사용하겠다"는 뜻이 된다. 파이썬의 변수에 대한 이러한 접근은 일반 컴퓨터 언어 (C, Java와 같은)와는 조금 다르게 느껴진다. 일반 컴퓨터 언어에서의 변수와 데이터는 다음과 같이 이해된다. 컴퓨터에서 데이터는 일종의 컨텐츠(contents)로서, 그것을 담을 수 있.. 더보기
[python 10] 반복을 위한 for, while * 파이썬의 12번째 주제인 "리스트 데이터 구조"를 먼저 보고 오시기 바랍니다. 우리가 파이썬의 8번째 주제인 [콘트롤 구조]에서 모든 명령어는 "반드시" 수행되고 "한번만" 수행되게 되어 있음을 살펴봤고, 9번째 주제인 [분기를 위한 if, elif, else]에서 "반드시"라는 제약사항을 조정할 수 있음을 살펴보았다. 이번 글에서는 "한번만"이라는 제약사항을 조정하여 명령문을 "여러번 반복해서" 실행할 수 있도록 하는 키워드인 for와 while에 대해 살펴보도록 하겠다. for 키워드를 이용해서 만들어서 반복을 일반적으로 for 루프(loop)라고 부른다. ○ for each 반복문 반복을 나타내는 키워드는 거의 모든 프로그래밍 언어에서 for 라는 키워드를 사용한다. 그래서, 일반적으로 for .. 더보기
[python 9] 분기를 위한 if, elif, else ○ if 문 아래에서 a 값을 화면에 출력하는 (가) 명령어는 무조건적(unconditional) 으로 실행되는 명령어이다. 여기서, (가) 명령어를 특정한 상황 또는 조건(condition) 에서만 실행되도록 수정해 보자. 예를 들어, a 값이 10보다 작을 때에만, print(a) 가 실행되도록 바꾸어 보면 아래와 같이 된다. if (조건식) 구문을 추가하여 print(a) 명령어가 실행되는 조건을 표시하였다. 여기서 (조건식) 을 연산하여 참(True) 이 될 때에만 print(a) 명령어가 실행되어 a 값이 화면에 출력된다. 위의 코드에서 a 값을 15로 바꾸면 어떻게 될까? 그러면 if 문의 (조건식)은 153 이란 조건은 항상 참이 되는 조건식이 된다. 또 다른 예로, a 더보기
[python 8] 컨트롤 구조 control structure 콘트롤 구조 (CONTROL STRUCTURE) 란? 우리가 만드는 프로그램은 하나의 절차(procedure) 로서, 보통 그 내부에 2개 이상의 명령어를 포함한다. 절차 내에 포함되어 있는 2개 이상의 명령어들은 동시에 실행될 수 없다. 즉, 한번에 하나의 명령어만 실행될 수 있다. 다시 말해서, 어떤 명령어가 실행이 끝나야 다른 명령어가 실행 될 수 있다. 그렇다 보니 어떤 명령어가 어떤 명령어보다 먼저 실행되어야 하는지 명령어들의 실행 순서를 결정해 주어야 하는 문제가 생긴다. 이와 같이 명령어들 간의 실행순서를 컨트롤 구조라고 부르며, 컨트롤 구조에서는 순차(sequence), 분기(branch), 반복(repetition, loop) 등의 3가지 형태가 있다. ○ 가장 기본적인 형태는 시퀀스 (.. 더보기
[python 7] 파이썬 내장함수 built-in function 이번 글에서는 함수에 대한 기초개념을 잡고, 2가지 중요한 함수인 input( ) 함수와 print( ) 함수를 살펴보는 시간을 갖도록 한다. 변수(variable)가 어떤 데이터의 이름이듯이, 함수는 어떤 연산/기능/동작/행위의 이름이다. 사람의 언어에 비유해 보면 변수는 명사에 해당되고, 함수는 동사에 해당된다. 단, 함수의 이름은 바로 뒤에 괄호가 따라온다. 어떤 이름 a 가 있다. 바로 뒤에 괄호가 없다. 그럼 이 a는 변수로 쓰인 것이다. 즉, 데이터를 가리키는 이름이다. 반면에, 어떤 이름 a가 있는데 뒤에 괄호가 붙어 있다. 예를 들어, a( ). 그럼 이 a는 함수로 쓰인 것이다. 즉, 어떤 연산을 가리키는 이름이다. # 나중에는 이런 구분이 무의미해지겠지만 (함수 이름 뒤에 꼭 괄호가 쓰.. 더보기
[python 6] 데이터와 연산 아래의 어떤 연산 operation 을 보자. 우리가 초등학교에서 마스터한 연산 중의 하나이다. 100+30 위의 연산은 이렇게 "읽을" 수 있다. "100과 30을 더하시오". 또는, "100에다 더하시오 (무엇을?) 30을" 또는, "더하시오, (무엇을?) 100과 30을". 여기서 + 기호는 덧셈 연산이라는 행위(동작)를 나타내는 기호로서, 연산자 operator 라고 부른다. 나머지인 100과 30은 그 동작의 대상이 되는 피연산자 operand 이다. 파이썬에서 사용되는 연산자 operator를 모두 보이면 아래와 같다. 한꺼번에 정리하고 외울 필요는 없다. 필요할 때 한번씩 사용해 보면 저절로 알게 된다. 그리고, 사람들이 사용하는 연산자와 거의 비슷하다. + - * ** / // % @ & .. 더보기