본문 바로가기

Tutorials

[PYTHON 3] Tutorials 38. Min, Max and Sorting Dictionaries (딕셔너리의 최솟값, 최댓값 구하기 및 정렬하기) 이번 시간에는 딕셔너리(key, value값을 가지는 형태)의 최솟값, 최댓값을 구하여 보겠습니다. 그리고 이의 정렬도 함께 살펴보려 합니다. 튜토리얼 초반부에 다룬 딕셔너리는 key, value값을 가지고 있습니다. 영어 사전을 떠올려보시면 이해하기 쉬울 것입니다. 찾고자 하는 단어가 key에 해당이되고, 해당 단어의 뜻이 value에 해당합니다. 어떤 key값에 대응하는 value값들을 가지고 있는 딕셔너리가 있다고 가정을 해 보겠습니다. 이 딕셔너리에는 많은 양의 데이터가 중구난방으로 존재하고 있습니다. 이런 무작위 데이터를 잘 정리하려고 하는데, 일반적으로 오름차순, 내림차순 등의 방식으로 정렬을 합니다. 그러나 문제는 파이썬에서 딕셔너리는 자체적으로 정렬을 할 수가 없습니다. 그럼 어떻게 해야 .. 더보기
[PYTHON 3] Tutorials 37. Lambda 이번 시간에는 Lambda 에 대해 알아보려고 합니다. 프로그래밍 언어를 조금이라도 다뤄본 사용자라면 친숙한 어휘일텐데, 그렇지 못한 초심자들이라면 상당히 낯선 단어이기도 합니다. Lambda(한글식 호명은 '람다'라고 읽으면 됩니다.)는 일종의 작은 함수 정도로 생각하시면 됩니다. 그 동안 어떤 역할을 수행하게 하는 함수를 정의하고 인자를 전달하고 함수를 호출하고 하여 코딩을 하여왔습니다. 그러나 Lambda는 함수와 달리 함수명이 없습니다. 그리고 여러번 호출해서 사용하지 않고 1회성으로 잠깐 사용하는 속성(단기) 함수라고 볼 수도 있습니다. 함수명만 없을 뿐이지, 전달되는 인자는 여전히 표기하여야 하는 공통점이 있습니다. 간단하게 기본적인 'Lambda'를 알아보겠습니다. 기본적인 Lambda의 표.. 더보기
[PYTHON 3] Tutorials 36. Zip Function 이번에는 zip function 에 대해 알아보도록 하겠습니다. 파이썬을 조금이라도 다루어 본 사용자라면 눈에 상당히 익은 함수일텐데요. 간단히 언급하자면, 길이가 같은 서로 다른 두 리스트가 있는데, 이 리스트를 하나의 짝(쌍)으로 묶어주는 역할을 하는 함수라고 생각하시면 될 것 같습니다. 보통은 반복문으로 각각을 합쳐주는 코딩을 하는데, 이러면 코드가 번거러워지고 깔끔(?)하지 못해지겠죠. 더욱 간편한 방법이 바로 zip function 사용입니다. 말보다는 아래 예제를 보시면 금방 와 닿을 것입니다. first name을 넣은 변수 first, last name 을 넣은 변수 last 가 아래와 같이 있습니다.▼ 이 두 리스트를 하나로 묶어주기 위해 zip(first, last) 처리하여 names.. 더보기
[PYTHON 3] Tutorials 35. Unpack List or Tuples ( 리스트, 튜플 풀기) 이번 시간에는 파이썬에서 리스트, 튜플을 다룰때 언패킹(풀기)을 어떻게 주로 이용하는지를 알아보고자 합니다. 일상 생활에서 우리가 마트에 장을 보러 간다고 가정을 해 보겠습니다. 영수증에 구매 목록이 쭉 나열이 될텐데, 이를 파이썬 프로그램으로 구매목록을 나열한다고 가정해 볼까요. 그럼 어떻게 처리를 하는게 좋을까요? 구매목록이 적게는 1개, 많게는 수십, 수백가지에 이를것입니다. 이럴경우 사용하는게 리스트, 또는 튜플을 이용합니다. 아이템을 하나 구매했는데, 구매 날짜, 품목, 가격. 이렇게 item이라고 하는 변수에 저장을 하게 하였습니다. 단순히 어떤것이 들어있는지 확인해 보았습니다.▼ item 이라는 변수의 포지션값을 넣어서 각각의 위치에 해당하는 값을 표기하게 하였습니다. 결과를 보니, 순서대로.. 더보기
[PYTHON 3] Tutorials 30. Multiple Inheritance - 파이썬의 클래스 다중 상속 이번 시간에는 앞 시간에서 다룬 클래스의 상속을 확장한 다중 상속에 대해 알아보려고 합니다. 하나의 클래스가 2개 이상의 서로다른 역할을 하는 클래스를 상속받아 그 기능을 온전히 수행하게끔 하는데 그 목적이 있고, 그러면 그 활용성 또한 증대될 것이기 때문입니다. 롤플레잉 게임을 한다고 가정하고, 그 중 한 캐릭터를 Archer(궁수)라고 할 때, 이 캐릭에 해당하는 클래스를 정의하였습니다. 그 중 움직임을 담당하는 함수를 move 라고 하고 정의하였습니다.▼ 게임내 아이템들이 많을텐데, 어떤 아이템을 획득 했을시에 레벨업을 가정하고 Item 이라는 클래스를 정의하였습니다. 그 중 아이템 획득에 관한 함수 eat_item 을 정의하였습니다.▼ 위의 두 개의 서로 다른 클래스를 상속 받게 할 경우에는 아래.. 더보기
[PYTHON 3] Tutorials 29. Inheritance - 파이썬의 클래스 상속 안녕하세요. 이번 시간에는 파이썬에서 가장 중요한 것 중 하나인 클래스의 상속에 대해서 알아보고자 합니다. 지난 시간까지 클래스가 어떤 것이며, 어떻게 사용하는지, 왜 사용하는지 등등에 대해서 간략히 소개하였습니다. 이번에는 이 클래스를 보다 실용적으로 사용하기 위해 기존의 만들어진 클래스를 확장하는 개념이라고 이해하시면 좋을것 같습니다.상속, 말 그대로 부모로 부터 물려받는것을 의미합니다. 다수의 기능을 하는 함수를 한데 묶어 하나의 클래스를 만들어 두었는데, 이 클래스가 가지고 있는 모든 기능을 그대로 가져오고, 거기에 더해 기능을 더 첨가하여 더 나은 클래스를 만들어 사용할 때 상속이라는 개념이 유용할 것입니다. 말 보다는 예제를 통해 알아 보도록 하겠습니다.클래스 이름을 'Parent'로 하는 클.. 더보기
[PYTHON 3] Tutorials 23. Downloading Files from the web - 파일 다운로드 하기 using 파이썬 안녕하세요. 이번 시간에는 지난 시간의 이미지(사진) 다운받기에 이어 파일을 다운받아 보도록 하겠습니다. 이미지 다운과는 약간 다르지만, 크게 어렵지는 않으니 느긋하게 읽어보시면 쉽게 이해할 수 있을 겁니다. 그럼 시작하겠습니다. 주식 분석을 위한 시세 자료를 다운 받기 할 예정입니다. 이제까지는 import 뒤에 불러올 모듈명을 바로 적어 주었습니다. 그런데 아래 그림은 앞에 from 을 적어주고 import 뒤 모듈명을 적어 주었네요. 이는 추후에 클래스를 다룰때 보다 자세히 설명드려야 할 사항이므로 지금은 그냥 넘어가셔도 무방합니다. ▼ 주식 관련 CSV(Comma Separated Value)파일을 찾아보았는데, 야후 파이낸스에 올라와 있더군요. 그래서 'finance.yahoo.com'으로 접속.. 더보기
[PYTHON 3] Tutorials 22. How to read and write Files - 파이썬에서 파일 읽고 쓰기 이번 시간에는 프로그래밍을 할 때 가장 중요한 요소 중 한가지인 파일 읽고 쓰기에 대해 알아보려고 합니다. 어떤 프로그램을 잘 만들었다고 하더라도 1회성으로 그 자료가 없어진다면 별 의미없는 작업이 될 것입니다. 데이터로 저장을 하고 이렇게 저장되거나 DB로 만들어 둔 자료들을 가지고 제2, 제3의 유용한 자료로 활욜할 수 있게 된다면 그제서야 자료로서 유용해질 것이기 때문입니다. 보통 이렇게 제2, 제3의 데이터로 활욜할 수 있는 분야들을 요즘에는 메타 데이터, 또는 빅데이터라고 하는 분야에 활용이 됩니다. 이 모든 사항들이 데이터가 기록이 이루어질 때 비로소 가능합니다. 그러려면 저장을 해야하는데 그러기 위한 단계가 파일의 형태로 남기는 것이겠죠. 자 그럼 시작을 해 볼까요? fw = open('te.. 더보기
[PYTHON 3] Tutorials 21. Download images from the web - 이미지(사진) 다운로드 하기 with 파이썬 안녕하세요. 이번 시간에는 앞시간에서 다룬 모듈을 사용해서 인터넷(웹) 상에서 이미지(사진)을 다운로드 해 보겠습니다. 그 까지것 직접 다운하면 되지 않냐? 할 수도 있겠으나, 우리는 호모 사피엔스( 생각하는 인간 ) 이지 않습니까! 번거로운 일은 컴퓨터가 알아서 하게 시키자는 취지입니다. 당연히 다운로드 해야할 양이 많아지면 귀차니즘이 발동 되니, 그 일을 컴퓨터에게 양보(?) 하는게 현명할 것입니다. 각설하고 시작하겠습니다. 앞에서 다룬 random 모듈을 불러들입니다. 파이썬 내장 모듈(함수)인 urllib를 불러들이는데, 그 중 request를 호출하였습니다. 우리가 웹브라우저(chrome, firefox, safari, internet explore, opera etc.)를 이용하여 인터넷을 서.. 더보기
[PYTHON 3] Tutorials 17. Unpacking Arguments 이번 시간에는 Unpacking Arguments에 대해 알아보도록 하겠습니다. Unpacking 은 말 그대로 꾸러미 같은것을 푼다는 의미입니다. 즉, Arguments 꾸러미를 푸는 것이 어떤것인지 알아보려고 합니다. 자 그럼 시작해 보겠습니다. 간단히 임의로 몇살까지 살 수 있을지에 관한 계산을 할 수 있는 함수를 정의해 보았습니다. 물론, 허구성이며 단순 계산식이니 신빙성은 없는 산술식이라고 하겠습니다. 위의 그림처럼 3개의 parameters를 받는 health_calculator라는 함수를 정의 하였습니다. 나이, 하루에 먹는 사과 개수, 하루에 피는 담배는 얼마인지. 이런걸로만 만든 계산기입니다. 계산을 하고 결과를 answer에 저장하고 출력하게끔 하였습니다. 그리고 'brown'이라고 하.. 더보기
[PYTHON 3] Tutorials 16. a Flexible number of Arguments 안녕하세요. 이번 시간에는 Arguments 개수가 몇개인지 모를 때, 임의의 개수를 지정하게 하는 부분을 다루도록 하겠습니다. 자 그럼 시작하겠습니다. 지금까지 다룬 함수에서 arguments의 개수는 지정되어 있었습니다. 이는 호출할 때도 마찬가지였습니다. 여러개의 수를 더하는 함수를 만든다고 할 경우에 위의 그림처럼 2개의 숫자를 더하게 할 수 있습니다. 그러나 달랑 2개의 숫자를 더하기 위해 함수를 정의하고 사용하는게 너무 비효율적이라고 생각하지는 않나요? 그리고 우리가 몇개를 더할지 모를 경우도 많을테죠. 계산기를 예를 들어 보겠습니다. 이것 저것 더하다가 또 다른 수를 더해야 하는데, 더 이상 더하기를 할 수가 없다면 어떨까요? 그건 계산기 역할을 제대로 한다고 할 수가 없겠죠? 이점을 파이썬.. 더보기
[PYTHON 3] Tutorials 15. Keyword Arguments 안녕하세요. 이번 시간에는 'Keyword Arguments'에 대해서 알아보도록 하겠습니다. 일전의 튜토리얼에서 default arguments에 대해 알아보았는데, 그것의 연장선상에 있다고 생각하시면 되겠습니다. 자 그럼 시작하겠습니다. 우선 silly_sentence라고 하는 임의의 함수를 정의합니다. 여기의 arguments를 위와 같이 3개로 구성하겠습니다. name, action, item 으로 3개의 arguments를 지정해 줍니다. 일전의 튜토리얼에서 default arguments 에 얘기했었는데, 이 경우 argument를 전달해 주지 않았을 경우 함수에서 미리 지정한 default로 그 값을 대신한다는 내용이었습니다. keyword arguments 또한 비슷하다고 여기면 됩니다. .. 더보기
[PYTHON 3] Tutorials 14. Variable Scope 안녕하세요. 이번 시간에는 변수의 범위에 대해서 알아보고자 합니다. 변수의 범위에는 크게 지역변수(Local)와 전역변수(Global)가 있습니다. 지역변수는 특정지역(?)에서만 유효한 경우를 일컬으며, 전역변수는 말 그대로 어디서든 사용 가능한 변수를 말합니다. 말보다는 그림을 보면서 진행하는게 좋겠죠? 그럼 시작하겠습니다. 우선 임의의 숫자를 number 라고 하는 변수에 지정을 해 주었습니다. 역시 임의의 함수 abcd라고 하는 함수를 정의하고 단순히 number 를 프린트 하는 명령어만 가지고 있게 하였습니다. 이번에는 또 다른 함수 xyz 를 정의하고 역시 변수 number 를 출력하게 하였습니다. 두 함수를 정의하였으니 호출하여 사용을 해봐야겠죠? 위 그림과 같이 두 함수를 나란히 호출하였습니.. 더보기
[PYTHON 3] Tutorials 13. Default Values for Arguments 이번 시간에는 함수에 인자(Arguments)를 전달하지 않을 경우 에러가 발생할 수 있는데, 이를 어떻게 처리할지를 알아보도록 하겠습니다. 만약 이럴경우 함수에 인자가 없을 경우를 대비해 초기값(default)를 지정해 두면 에러가 발생하지 않습니다. 무슨말인지 감이 안오시면 아래 그림을 보면서 확인해 보시기 바랍니다. 그리고 모바일에서 볼 때 폰트가 너무 작아 가독성이 좋지 않다는 의견을 주신분들이 계셔서 Pycharm 의 코드, 콘솔 폰트의 크기를 키워보았습니다. 의견 주신분들께 감사드립니다. 그럼 시작해 보겠습니다. 우선 성별을 판단하는 함수를 정의하였습니다. 이전에 다룬 함수들과 다른점이 보이시나요? Arguments(인자)에 미리 값이 지정이 되어 있네요. 바로 sex='Unknown' 으로 .. 더보기
[PYTHON 3] Tutorials 9. Comments and Break 안녕하세요. 이번시간에는 Comments and Break 에 대해 알아보고자 합니다. 우선 찾고자 하는 숫자(혹은 특정 값)을 프로그램에서 찾아야 할 필요가 있을 때 어떻게 해야 할까요? 기본적으로는 조건을 만족 시키는지 판단을 해야 할 것입니다. 일단, 찾고자 하는 수를 35라고 할 때, 이를 magicNumber에 할당을 하였습니다. 위의 그림은 파이썬에서 1줄 Comment 를 남길 때 사용하는 방법입니다. '#' 를 넣으면 그 뒤의 한줄은 컴파일을 하지 않겠다는 의미입니다. 만약 여러 문장을 Comments 처리해야 할 경우에는 Single Quote(') 을 세개를 사용합니다. ''' 주석처리 할 부분을 여기에 넣습니다. ''' 다시 본론으로 들어가면, 주석처리 한 내용처럼 이 프로그램은 매직.. 더보기
[PYTHON 3] Tutorials 5. Lists 안녕하세요. 이번 시간에는 파이썬에서 가장 중요하고, 사용 빈도수가 높은 Lists(배열)에 대해 알아볼까요? 직관적으로 생각하기에 리스트는 말 그대로 문자나, 숫자 등을 쭈욱~ 나열한 일련의 집합이라고 보시면 될것 같습니다. 문자, 숫자 어느 것을 집어 넣어도 상관 없겠으나 여기서는 간단히 숫자로만 설명을 하겠습니다. 1. players 라는 변수에 위와 같이 일련의 점수를 넣으려고 할 때, 파이썬에서는 리스트 형태로 'Square Bracket [ ] '을 사용합니다. players 에 29, 55, 52, 61, 78, 87 을 저장하였습니다. 2. 그럼 저장된 players 변수에 3번째 (컴퓨터는 0부터 카운트 한다고 지난 시간에 다루었습니다) 값을 확인해 볼까요? 52라는 숫자를 뱉어 내는군요.. 더보기
[PYTHON 3] Tutorials 4. Slicing up Strings 안녕하세요. 이번에는 문자열(strings)을 slicing up 하는 것을 다뤄보겠습니다. 우선 터미널을 열고 파이썬 인터프리터를 구동시킵니다. user 라는 변수에 문자열 "Barack Obama" 라고 하는 임의의 값을 할당해 주었습니다. 사람들은 숫자를 세어 보라고 하면 1부터 카운팅을 하지만, 컴퓨터는 0부터 카운팅을 합니다. 이는 비단 다른 컴퓨터 언어도 마찬가지이므로 기억해 두시면 좋겠습니다. 변수 user 의 첫번째 값이 뭔지 확인해 보려고 user[0] 을 입력하니 'B' 라고 알려주네요. 이번에는 user 안의 8번째(0부터 카운팅하니 8번째가 되겠죠?)값은 대문자 'O' 이네요. 물론 왼쪽부터 알아볼 수도 있지만, 오른쪽에서도 위의 그림처럼 slicing up 할 수 있습니다. 여기에.. 더보기