SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
1. Python Essential
이번에는 Python Language를 알아보겠습니다. 단 시간안에 공부하기란 결코 쉽지 않지만 가볍
게 보도록 하겠습니다.
단, Python이 처음이신 분은 모든 예제를 직접 작성해보시길 권합니다. 기억력은 비단 머리만 있
는 것이 아니라고 합니다. 모든 조직이 갖고 있다고 합니다. 그렇기 때문에 머리부터가 아니라 손
의 기억력을 활용하길 원합니다. 그래야 하루 빨리 프로그래밍에 대한 두려움을 떨쳐낼 수 있습니
다. 손은 알고 있습니다.
1.1 Python Basic
0) 실행 및 파일
[Figure 1. Python 실행 화면]
콘솔창의 아무 경로에 가서 python 을 입력하고 실행하면 됩니다.
1) 대화식 인터프리터
바로 위에 화면이 대화식 인터프리터 입니다. 대화를 나누듯이 코드를 맥락 단위로 실행할 수 있습
니다. 앞으로 자주 보게 될 화면입니다. 수시로 들어가서 맞게 코드를 작성했는지 테스트도 해볼
것입니다.
1
2) 들여쓰기
파이썬의 가장 큰 특징이며 처음에 가장 익숙하지 않은 것이 들여쓰기로 맥락(Context)상 블록
(Block)을 구분합니다. 관례상 4칸의 스페이스를 두지만, 들여쓰기 칸 수는 마음대로 정하셔도 됩
니다.
you_are_here = True
if you_are_here:
print "Good Job!" # 들여쓰기 4칸 적용
3) Block의 시작은 콜론(:)
파이썬을 처음하는 사람들이 제일 짜증내(?)하는 부분입니다. Java와 같은 언어는 블록을 {, }으로
명확하게 처리하지만 파이썬에서는 단지 콜론(:)으로만 처리합니다.
you_are_here = True
if you_are_here: # 블록의 시작, 끝을 의미하는 기호는 없음
print "Good Job!"
print "and"
print "you are good."
4) 주석처리
파이썬의 주석처리는 아래와 같이 세 가지 방법이 있습니다. 개발자에게 주석처리 습관은 매우 중
요합니다. 소스를 나만 볼 것이 아니기 때문에 어떤 의도로 작성했는지 주석으로 말해줄 필요가 있
습니다.
1. Multiple Comment
1. Double Quotation
2. Single Quotation
2. Single Comment
1. # (Sharp)
"""
너가 만약에
프로그램
"""
'''
만든 날짜: 2015년 07월 어느날
만든 사람: initialkommit
'''
you_are_here = True
# 너가 만약 여기 있다면 잘했다고 칭찬해라
if you_are_here:
print "Good Job!"
5) 변수
객체의 종류가 무엇이든 상관없이 = 를 사용해 선언해 사용합니다. Java처럼 변수명 앞에 데이터
타입을 선언해줄 필요도 없습니다.
you_are_here = True # 변수에 True값 할당
if you_are_here:
print "Good Job!"
6) 한글 사용
파이썬 파일(.py)에서 한글을 사용하기 위해서 두 가지를 유의하셔야 합니다.
1. 문서의 최상단에 입력(# coding: UTF-8)
2. 한글을 작성했을 때는 문자열 앞에 영문자 u를 입력해줍니다. unicode라는 뜻입니다.
# coding: UTF-8
you_are_here = True
if you_are_here:
print u"잘했어!"
7) 0부터 시작
파이썬은 숫자를 샐 때 0부터 시작을 합니다. 참 컴퓨터스럽지요.
1.2 객체 지향 프로그래밍
1) 객체 지향 언어의 특징
파이썬은 객체 지향 언어입니다. 객체를 지향한다는 말에서 알 수 있듯이 모든 것을 객체화해 취급
합니다. 객체 지향 프로그램이라는 것은 공부하기가 쉽지 않습니다. 하지만 가장 중요한 것을 살펴
보면 아래와 같습니다.
1. 행동(Method or Function)이 있습니다.
2. 속성(Attribute)이 있습니다.
3. class를 통해 만들 수 있습니다.
4. 부모 class로 부터 Method와 Attribute를 상속(Inheritance) 받을 수 있습니다.
5. 상속받은 Method의 로직을 바꿀 수 있습니다.
6. 상속받은 Attribute의 데이터를 바꿀 수 있습니다.
무슨 말인지 모를 수 있습니다. 아래의 두 가지 생활 예를 살펴봅시다.
2) 붕어빵
1. 붕어빵을 판매하시는 분은 프로그래머입니다.
2. 붕어빵을 찍어내는 틀은 class입니다.
3. 붕어빵 틀인 class로부터 나온 붕어빵은 객체(혹은 인스턴스)입니다.
4. 붕어빵의 속성(Attribute)에는 재료=팥, 색깔=노랑이 있습니다.
5. 붕어빵의 행동(Method)에는 ‘한국어 하기’, ‘수영하기’가 있습니다.
6. 붕어빵의 속성은 변경이 가능합니다. 팥에서 아이스크림으로.
7. 붕어빵의 행동은 변경이 가능합니다. ‘한국어 하기’에서 ‘영어 하기’로.
3) 인간
1. 인간을 만든 조물주는 프로그래머입니다.
2. 인간을 만든 원형은 class입니다.
3. 인간을 만든 원형인 class로부터 나온 인간은 객체(혹은 인스턴스)입니다.
4. 인간의 속성(Attribute)에는 나라=한국, 성별=남자가 있습니다.
5. 인간의 행동(Method)에는 ‘걷기’, ‘밥먹기’가 있습니다.
6. 인간의 속성은 변경이 가능합니다. 한국에서 미국으로.
7. 인간의 행동은 변경이 가능합니다. ‘걷기’에서 ‘뛰기’로.
4) 파이썬의 모든 것은 객체
파이썬의 모든 것은 객체입니다. 즉 행동과 속성이 있습니다. 변수, 숫자 상관없이 모든 것은 객체
이고 행동과 속을 가지고 있습니다. 뭔 말이냐구요? 아래를 실행해볼까요!?
dir("A")
dir(1)
dir()는 해당 객체가 갖고 있는 속성과 Method를 보여주는 함수입니다. 실행해보면 단지 문자와 숫
자였을 뿐인데 거기에는 다양한 것들이 있습니다. 이 특징을 잘 알고 있으면 Django도 쉽게 공부
할 수 있습니다.
1.3 데이터 타입
2
[Figure Python의 데이터 타입 개요 ]
1) 순서열(sequence) 객체 - 문자열
순서열(sequence)은 양의 정수로 색인(index)되도록 순서대로 객체들을 모아놓은 자료형입니
다. 문자열, 리스트(list), 튜플(tuple)이 순서열 자료형입니다.
str = "boys be ambitious"
print str[1] # Indexing(색인, 선택하기)
print str[1:3] # Slicing(추출하기)
문자열 객체는 색인(index)되도록 순서대로 객체들이 모아져 있는 자료형이기 떄문에 아래 예제도
가능합니다.
str = "boys be ambitious"
# for 반복문
for seq in str:
print seq
for 반복문을 아직 공부하진 않았지만 잠시 살펴보겠습니다. str이라는 객체는 색인되도록 순서대
로 객체들을 모아놓은 자료형이기 때문에 for 반복문에서 str이라는 객체에서 색인된 객체 b, o, y,
s, … 하나 하나를 가져와 seq라는 변수에 할당하고 이를 출력하는 것입니다.
3
단순히 문자열이라고 생각하면 절대 안됩니다.
2) 리스트(list)/튜플(tuple) 객체
이 둘은 거의 동일합니다. 문자열은 각 방(room)에 문자만 들어간다면, 리스트나 튜플은 각 방에
어떤 객체든지 담습니다. Java같은 언어에서 배열이랑 같다고 보시면 됩니다.
리스트와 튜플의 차이점은, 리스트는 변경 가능한(mutable) 자료형이고 튜플은 불변(immutable)
자료형이라는 점입니다. 그외엔 동일합니다.
파이썬에서는 Trailing comma(,)라는 것이 있습니다. 아래 예제처럼 아이템 나열이 끝났는데도
comma(,)로 마무리하는 것이 가능합니다. 안붙여도 되긴 하지만 어느 때는 trailing comma(,)를
붙여야 실행이 될 때가 있으니 관례상 comma(,)를 붙이는 게 좋습니다.
listvar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ]
tuplevar = (1, 2, 3, 4, 5, 6, )
print listvar[:2] # 0부터 2앞까지 추출하기
print tuplevar[1:-2] # 1부터 뒤에서 -2앞까지 추출하기
# 중첩 리스트
listA = ['a', 'b', 'c', ]
listB = [listA, '2', '3', ]
print listB[0][1]
3) 사전(dict) 객체
{'key1': 'value1', 'key2': 'value2'}
위와 같이 중괄호로 묵고 그 안에 Key: Value 쌍이 모인 객체를 사전 객체라고 합니다. 사전 객체
도 리스트나 튜플처럼 다양한 객체를 묶어냅니다. 다만, 순서대로(sequential) 객체를 나열해 담지
않고, 각 방(room)에 접근하는 별도 구분자(key)가 있어서 이 구분자로 각 방에 접근합니다.
순서열과 마찬가지로 대괄호 안에 접근할 방 구분자를 넣어 색인 및 추출을 할 수 있습니다. 순서
열은 색인 정수를 넣고, 사전은 키를 넣습니다.
dictvar = {"one": 1, "two": 3}
print dictvar['one']
print dictvar['two']
dictvar['two'] = 2 # 값 수정
print dictvar['two']
# 중첩 구조
dictvar["three"] = {'math': 100, 'english':90} # 새로운 아이템 삽입
print dictvar
print dictvar["three"]["english"] # 중첩 구조 접근 방법
del dictvar["two"] # 사전형 객체 내 아이템 지우기
1.4 객체 메소드
1) 객체 타입 확인하기
객체는 메소드(행동)와 속성을 가지고 있습니다. 속성이라는 단어는 멤버 변수라고도 부릅니다.
해당 객체가 어떤 메소드를 가지고 있는지 파악하기 전에 먼저 객체가 어떤 데이터 타입인지 알아
보겠습니다. 아래와 같이 type()이라는 함수로 알아볼 수 있습니다.
type(객체명)
2) 객체 메소드 확인하기
해당 객체가 가지고 있는 메소드와 속성들에는 무엇이 있는 지 알아보는 명령어는 아래와 같습니
다.
dir(객체명)
3) 객체의 메소드 사용법
아래와 같이 점()으로 메소드 또는 속성에 접근할 수 있습니다.
객체.메소드
4) 문자열 객체의 메소드
아래와 같이 아무 문자열이나 검색해보면 알 수 있습니다.
dir("studybee")
많은 메소드 중에는 이상하게 _(underbar) 2개로 시작하는 메소드도 있습니다. 이런 메소드는 지
금은 볼 필요가 없고 나중에 더 깊게 배울 때 조금씩 보면 좋을 거 같습니다. 이런 메소드 중에는
Operator Overloading이라는 것이 있는데 이는 연산자(+, -, /와 같은)들을 만날 때 자동으로 수행
하는 메소드도 있습니다. (ex. __add__())
많은 메소드를 가지고 있지만 자주 쓰이는 문자열 메소드를 보겠습니다.
메소드 설명
startswith(suffix,[start],
[end])
지정한 문자열(suffix)로 시작하는지 검사. start와 end는 위
치값
endswith(suffix,[start].[end]) 지정한 문자열(suffix)로 끝나는지 검사. start와 end는 위치
값
join(순서열객체) 문자열을 분리자로 하여 순서열 항목을 이어 붙임
lower() 문자열을 소문자로 바꿈
upper() 문자열을 대문자로 바꿈
strip() 문자열의 앞뒤에 있는 공백 문자 제거
split([sep, [maxsplit]]) 문자열을 지정한 구분자(sep)로 분할, maxsplit은 최대분할횟
수
replace(old, new) 대상 문자열(old)을 대체할 문자열(new)로 바꿈
str = "studybee"
print str.startswith("s")
str = "study-bee"
print str.replace("-", "")
str="real-python"
print str.split("-")
5) 리스트/튜플 객체의 메소드
메소드 설명
append(item) 리스트의 끝에 새로운 item 추가
count(str) 리스트나 튜플에서 str의 갯수를 변환
pop([i]) 리스트의 지정한 색인(i)에 있는 아이템을 반환하고 제거. 색인이 지정되지 않
으면 가장 마지막 아이템이 대상.
remove(str) 리스트에서 str을 찾아 제거하고 따로 반환하지는 않음
리스트와 튜플의 차이점은 수정 가능하냐, 가능하지 않느냐임을 명심하면 좋겠습니다.
lst = []
for item in range(4): # range라는 함수는 파이썬 내장 함수
lst.append(item)
print lst
str = "study-bee"
lst = []
for seq in str.split("-"):
lst.append(seq)
print lst
6) 사전형 객체의 메소드
메소드 설명
clear() 사전 객체의 모든 항목 제거
copy() 사전 객체의 사본 생성
has_key(key) 지정한 key가 있는지 검사
get(key, [value]) key의 value을 반환, 없으면 지정한 별도의 value값 반환
keys() 사전 객체의 모든 key를 순서열로 변환
values() 사전 객체의 모든 value를 순서열로 변환
items() 사전 객체의 모든 항목을 (key, value) 형태로 변환
uid="studybee"
passwd="12345"
customer_info = {"studybee": "12345"}
if uid in customer_info.keys():
if customer_info[uid] == passwd:
print "Log In"
else:
print "Wrong Password"
else:
print "ID is Not Found"
# coding: UTF-8
posting = {"id": 1, "title": "blah blah", "views": 300}
author = posting.get('authour', 'studybee')
if not author.startswith("s"):
print u"s로 시작하지 않는군요."
else:
print u"s로 시작하는군요."
1.5 조건문
분기문이라고도 합니다. 이는 논리적 사고를 표현하는데 유용합니다. 사용법은 간단합니다. 아래
와 같습니다.
if condition1:
statement1
elif condition2:
statement2
elif conditionN:
statementN
.
.
else:
last statement
1.6 반복문
반복문은 논리적 구조에 있어서 반복적으로 실행할 필요가 있을 때 쓰입니다. 두 가지가 있습니다.
1. for 반복문
2. while 반복문
for item in items:
items 의 값을 하나씩 꺼내 item 에 assign 하며 모든 항목 반복
continue
이번 수행을 하지 않고 다음으로 이동한다.
break
loop를 빠져나간다.
for 반복문으로 반복처리를 하다가 특정 조건을 만났을 때 continue를 통해 다음문으로 이동할 수
도 있고 break를 통해 반복문을 빠져나올 수도 있습니다.
items = "initialkommit@gmail.com"
for item in items:
if item == "@":
break
print item.upper(),
1.7 함수
함수는 판도라의 상자와 같습니다. 특정 Input이 특정 Output으로 나오는데 그 과정을 다른 이들
은 모르는 것입니다. 여기서 input은 함수의 인자값(Argument or Parameter)라고 하고 Output
은 함수의 반환값이라고 합니다.
1) 내장 함수
파이썬에는 이미 몇 가지 함수를 만들어 제공해주고 있습니다. 이를 내장 함수(Built-in Function)
이라고 합니다. 자세한 건 공식문서를 참고하시길 바라고, 여기서는 간단히 몇 개만 소개하겠습니
다.
내장 함수 설명
len(객체) 객체 내 항목 개수, ex) len([1,2,3]) -> 3개
any(객체) or와 같음, 한 개라도 참이면 참, 한 개라도 빈 값이 있으면 False
all(객체) and와 같음, 모두 값이 있거나, 모두 빈 값이어야 True
int(객체) 객체를 Integer 형태로 바꿈
str(객체) 객체를 String 형태로 바꿈
max(객체1, 객체2) 객체를 비교하여 큰 것을 반환
min(객체1, 객체2) 객체를 비교하여 작은 것을 반환
2) 함수 만들기
파이썬에서 함수는 실행(호출)가능한 객체(Callable Object)라고 합니다. 왜냐면 파이썬의 모든 것
은 객체이기 때문이지요. 형태는 아래와 같습니다. 함수명 앞에 def 라는 예약어를 사용합니다.
def hihello(name, country="Korea"):
print "Hi, " + name
print "Hello, " + country
return name + "-" + country
print hihello("initialkommit")
위에서 보듯이 함수는 호출을 해야 실행을 합니다. 함수는 인자값으로 2개가 있는데 막상 호출할
때는 한 개만 넣었습니다. 이는 그 한 개의 값이 name이 되고 county는 인자값으로 넣어주지 않았
음에도 작동하는 이뉴는 default값으로 “Korea”를 선언해줬기 때문입니다.
그리고 함수는 반환값이 있을 수도 있고 없을 수도 있습니다. 만약 반환을 해야한다면 return이라
는 명령어를 사용합니다.
1.8 클래스
Class는 객체 지향 프로그래밍을 구현하는 역할을 합니다. 붕어빵 장사하시는 사장님이 붕어빵을
만들어내듯 우리 개발자는 한 개의 틀만으로 여러 개의 객체를 만들어낼 수 있습니다. 형식은 아래
와 같습니다.
class 클래스명(상속받아올 부모 클래스):
멤버변수1 = 값1
멤버젼수2 = 값2
def 메소드명(self):
pass
객체1 = 클래스명()
객체2 = 클래스명()
위와 같이 만든 클래스를 통해서 객체 혹은 인스턴스를 만들 수 있습니다. 객체와 인스턴스는 동일
한 말입니다. 객체에는 메소드와 속성을 가질 수 있다고 했습니다. 위에서 봐서 알 수 있듯이 속성
(멤버변수라고도 합니다.)과 메소드가 있는 것을 볼 수 있습니다.
클래스에서 부모 클르스로부터 상속받아 올 수도 있습니다. 이는 괄호에 상속받아올 부모 클래스
를 적어주면 됩니다.
만든 메소드의 괄호 안에 self라는 것이 있습니다. 이는 인스턴스를 만들 때 해당 인스턴스를 통해
서 실행하는 메소드를 의미합니다. 이 부분은 어려우니 나중에 설명하도록 하겠습니다.
위와 같이 하나의 클래스로부터 여러 개의 객체를 만들 수도 있습니다.
클래스는 부분은 우선 짧게 여기까지만 보고 넘어가겠습니다.
2. Python Example
아래 예제 문제를 풀면서 파이썬 프로그래밍에 더 친숙해져보는 시간을 갖겠습니다. 어려운 수준
은 아닙니다.
2.1 메르스 조심! camelCase를 잡자!
메르스가 창궐했습니다. IT 세계에서도 낙타를 조심해야합니다. 변수 Naming 방법 중에
camelCase라는 것이 있습니다. varName, numAge 처럼 중간 단어 혹은 키워드의 첫 글자만 대
문자로 하는 방법입니다. 물론 메르스는 쌍봉낙타의 경우에만 발생한다고 하지만, 우선 우리는
camelCase의 중간에 튀어나온 대문자를 찾아내 소문자로 바꿔봅시다.
http://bit.ly/1HSrGQe
2.2 Hashtag를 추출해 list에 담기
Instagram, Twitter 등 우리에게 친숙한 SNS에는 #를 붙인 해쉬 태그 개념이 있습니다. 해당
posting의 성격을 사용자의 자유에 맏기는 것입니다. 이 해쉬태그만을 추출해 데이터베이스에 저
장하는 경우가 많습니다. 우선 우리는 해쉬태그를 추출해 list에 담아보겠습니다.
http://bit.ly/1SdOrxu
2.3 모스 암호 해독하기
모스 신호가 들어왔습니다. 이를 해석하는 프로그램을 만들어 봅시다.
http://bit.ly/1fuKLvj
3. Summary
이번 챕터에서는 파이썬 이라는 언어를 살펴보았습니다. 많은 내용을 보았지만 제일 중요한 것은
한 번은 직접 작성해서 실행해보는 것입니다. 그리고 어렵게 생각지 마시고 필요할 때 다시 본다는
마음으로 가져가면 좋을 것 같습니다.
Written by initialkommit@Study-Bee.
1. 파이썬 기본 부분은 차경묵님의 자료를 인용했습니다.
2. 파이썬 데이터 타입 부분은 차경묵님의 자료를 인용했습니다.
3. 파이썬 데이터 타입 개요 부분은 차경묵님의 자료를 인용했습니다.

Mais conteúdo relacionado

Mais procurados

파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍Yong Joon Moon
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기Yong Joon Moon
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229Yong Joon Moon
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.Young-Beom Rhee
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈Yong Joon Moon
 
주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편Darion Kim
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형Hyosang Hong
 
파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기Yong Joon Moon
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)Sung-hoon Ma
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131Yong Joon Moon
 
파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403Yong Joon Moon
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기 Yong Joon Moon
 
엘라스틱서치 분석 이해하기 20160623
엘라스틱서치 분석 이해하기 20160623엘라스틱서치 분석 이해하기 20160623
엘라스틱서치 분석 이해하기 20160623Yong Joon Moon
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oopYoung-Beom Rhee
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js functionYoung-Beom Rhee
 
Jquery javascript_ed10
Jquery javascript_ed10Jquery javascript_ed10
Jquery javascript_ed10hungrok
 
파이썬 Special method 이해하기
파이썬 Special method 이해하기파이썬 Special method 이해하기
파이썬 Special method 이해하기Yong Joon Moon
 

Mais procurados (20)

파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
 
주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형
 
파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기
 
Python - Module
Python - ModulePython - Module
Python - Module
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131
 
파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
 
엘라스틱서치 분석 이해하기 20160623
엘라스틱서치 분석 이해하기 20160623엘라스틱서치 분석 이해하기 20160623
엘라스틱서치 분석 이해하기 20160623
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
 
Jquery javascript_ed10
Jquery javascript_ed10Jquery javascript_ed10
Jquery javascript_ed10
 
파이썬 Special method 이해하기
파이썬 Special method 이해하기파이썬 Special method 이해하기
파이썬 Special method 이해하기
 

Destaque

QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기
QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기
QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기Kwangyoun Jung
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment SettingKwangyoun Jung
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Kyoung Up Jung
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째혜선 최
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표Kyoung Up Jung
 
Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Kyoung Up Jung
 
웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?Kyoung Up Jung
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서Kyoung Up Jung
 
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬Amazon Web Services Korea
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Kyoung Up Jung
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
 

Destaque (17)

Light Tutorial Django
Light Tutorial DjangoLight Tutorial Django
Light Tutorial Django
 
QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기
QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기
QnA Blog Using Django - 회원가임/로그인폼, Post, 글보기
 
python and database
python and databasepython and database
python and database
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째파이썬을 만난지 100일♥ 째
파이썬을 만난지 100일♥ 째
 
뭔지 모르지만 발표
뭔지 모르지만 발표뭔지 모르지만 발표
뭔지 모르지만 발표
 
Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?Django ORM 왜 어렵게 느껴질까?
Django ORM 왜 어렵게 느껴질까?
 
웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?웹 개발, 왜 어려운가?
웹 개발, 왜 어려운가?
 
깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
Django개발은 PyCharm에서
Django개발은 PyCharm에서Django개발은 PyCharm에서
Django개발은 PyCharm에서
 
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 

Semelhante a Light Tutorial Python

자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조중선 곽
 
C++ Template/STL study
C++ Template/STL studyC++ Template/STL study
C++ Template/STL studySeo Dong-yu
 
01 built in-data_type
01 built in-data_type01 built in-data_type
01 built in-data_typeJu-Hyung Lee
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 SKKU
 
Swift3 generic
Swift3 genericSwift3 generic
Swift3 genericEunjoo Im
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
Collection framework
Collection frameworkCollection framework
Collection frameworkssuser34b989
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)Seung-June Lee
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7Yeonah Ki
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1민태 김
 
Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008daliot
 
Holub on-patterns-2-1
Holub on-patterns-2-1Holub on-patterns-2-1
Holub on-patterns-2-1정환 임
 
HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1정환 임
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object민태 김
 

Semelhante a Light Tutorial Python (20)

자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
 
C++ Template/STL study
C++ Template/STL studyC++ Template/STL study
C++ Template/STL study
 
01 built in-data_type
01 built in-data_type01 built in-data_type
01 built in-data_type
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디
 
C++ stl
C++ stlC++ stl
C++ stl
 
Python
PythonPython
Python
 
Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
Collection framework
Collection frameworkCollection framework
Collection framework
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
 
Gpg1
Gpg1Gpg1
Gpg1
 
Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008
 
Holub on-patterns-2-1
Holub on-patterns-2-1Holub on-patterns-2-1
Holub on-patterns-2-1
 
HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
 

Light Tutorial Python

  • 1. 1. Python Essential 이번에는 Python Language를 알아보겠습니다. 단 시간안에 공부하기란 결코 쉽지 않지만 가볍 게 보도록 하겠습니다. 단, Python이 처음이신 분은 모든 예제를 직접 작성해보시길 권합니다. 기억력은 비단 머리만 있 는 것이 아니라고 합니다. 모든 조직이 갖고 있다고 합니다. 그렇기 때문에 머리부터가 아니라 손 의 기억력을 활용하길 원합니다. 그래야 하루 빨리 프로그래밍에 대한 두려움을 떨쳐낼 수 있습니 다. 손은 알고 있습니다. 1.1 Python Basic 0) 실행 및 파일 [Figure 1. Python 실행 화면] 콘솔창의 아무 경로에 가서 python 을 입력하고 실행하면 됩니다. 1) 대화식 인터프리터 바로 위에 화면이 대화식 인터프리터 입니다. 대화를 나누듯이 코드를 맥락 단위로 실행할 수 있습 니다. 앞으로 자주 보게 될 화면입니다. 수시로 들어가서 맞게 코드를 작성했는지 테스트도 해볼 것입니다. 1
  • 2. 2) 들여쓰기 파이썬의 가장 큰 특징이며 처음에 가장 익숙하지 않은 것이 들여쓰기로 맥락(Context)상 블록 (Block)을 구분합니다. 관례상 4칸의 스페이스를 두지만, 들여쓰기 칸 수는 마음대로 정하셔도 됩 니다. you_are_here = True if you_are_here: print "Good Job!" # 들여쓰기 4칸 적용 3) Block의 시작은 콜론(:) 파이썬을 처음하는 사람들이 제일 짜증내(?)하는 부분입니다. Java와 같은 언어는 블록을 {, }으로 명확하게 처리하지만 파이썬에서는 단지 콜론(:)으로만 처리합니다. you_are_here = True if you_are_here: # 블록의 시작, 끝을 의미하는 기호는 없음 print "Good Job!" print "and" print "you are good." 4) 주석처리 파이썬의 주석처리는 아래와 같이 세 가지 방법이 있습니다. 개발자에게 주석처리 습관은 매우 중 요합니다. 소스를 나만 볼 것이 아니기 때문에 어떤 의도로 작성했는지 주석으로 말해줄 필요가 있 습니다. 1. Multiple Comment 1. Double Quotation 2. Single Quotation 2. Single Comment 1. # (Sharp) """
  • 3. 너가 만약에 프로그램 """ ''' 만든 날짜: 2015년 07월 어느날 만든 사람: initialkommit ''' you_are_here = True # 너가 만약 여기 있다면 잘했다고 칭찬해라 if you_are_here: print "Good Job!" 5) 변수 객체의 종류가 무엇이든 상관없이 = 를 사용해 선언해 사용합니다. Java처럼 변수명 앞에 데이터 타입을 선언해줄 필요도 없습니다. you_are_here = True # 변수에 True값 할당 if you_are_here: print "Good Job!" 6) 한글 사용 파이썬 파일(.py)에서 한글을 사용하기 위해서 두 가지를 유의하셔야 합니다. 1. 문서의 최상단에 입력(# coding: UTF-8) 2. 한글을 작성했을 때는 문자열 앞에 영문자 u를 입력해줍니다. unicode라는 뜻입니다. # coding: UTF-8 you_are_here = True if you_are_here: print u"잘했어!"
  • 4. 7) 0부터 시작 파이썬은 숫자를 샐 때 0부터 시작을 합니다. 참 컴퓨터스럽지요. 1.2 객체 지향 프로그래밍 1) 객체 지향 언어의 특징 파이썬은 객체 지향 언어입니다. 객체를 지향한다는 말에서 알 수 있듯이 모든 것을 객체화해 취급 합니다. 객체 지향 프로그램이라는 것은 공부하기가 쉽지 않습니다. 하지만 가장 중요한 것을 살펴 보면 아래와 같습니다. 1. 행동(Method or Function)이 있습니다. 2. 속성(Attribute)이 있습니다. 3. class를 통해 만들 수 있습니다. 4. 부모 class로 부터 Method와 Attribute를 상속(Inheritance) 받을 수 있습니다. 5. 상속받은 Method의 로직을 바꿀 수 있습니다. 6. 상속받은 Attribute의 데이터를 바꿀 수 있습니다. 무슨 말인지 모를 수 있습니다. 아래의 두 가지 생활 예를 살펴봅시다. 2) 붕어빵 1. 붕어빵을 판매하시는 분은 프로그래머입니다. 2. 붕어빵을 찍어내는 틀은 class입니다. 3. 붕어빵 틀인 class로부터 나온 붕어빵은 객체(혹은 인스턴스)입니다. 4. 붕어빵의 속성(Attribute)에는 재료=팥, 색깔=노랑이 있습니다. 5. 붕어빵의 행동(Method)에는 ‘한국어 하기’, ‘수영하기’가 있습니다. 6. 붕어빵의 속성은 변경이 가능합니다. 팥에서 아이스크림으로. 7. 붕어빵의 행동은 변경이 가능합니다. ‘한국어 하기’에서 ‘영어 하기’로. 3) 인간 1. 인간을 만든 조물주는 프로그래머입니다.
  • 5. 2. 인간을 만든 원형은 class입니다. 3. 인간을 만든 원형인 class로부터 나온 인간은 객체(혹은 인스턴스)입니다. 4. 인간의 속성(Attribute)에는 나라=한국, 성별=남자가 있습니다. 5. 인간의 행동(Method)에는 ‘걷기’, ‘밥먹기’가 있습니다. 6. 인간의 속성은 변경이 가능합니다. 한국에서 미국으로. 7. 인간의 행동은 변경이 가능합니다. ‘걷기’에서 ‘뛰기’로. 4) 파이썬의 모든 것은 객체 파이썬의 모든 것은 객체입니다. 즉 행동과 속성이 있습니다. 변수, 숫자 상관없이 모든 것은 객체 이고 행동과 속을 가지고 있습니다. 뭔 말이냐구요? 아래를 실행해볼까요!? dir("A") dir(1) dir()는 해당 객체가 갖고 있는 속성과 Method를 보여주는 함수입니다. 실행해보면 단지 문자와 숫 자였을 뿐인데 거기에는 다양한 것들이 있습니다. 이 특징을 잘 알고 있으면 Django도 쉽게 공부 할 수 있습니다. 1.3 데이터 타입 2
  • 6. [Figure Python의 데이터 타입 개요 ] 1) 순서열(sequence) 객체 - 문자열 순서열(sequence)은 양의 정수로 색인(index)되도록 순서대로 객체들을 모아놓은 자료형입니 다. 문자열, 리스트(list), 튜플(tuple)이 순서열 자료형입니다. str = "boys be ambitious" print str[1] # Indexing(색인, 선택하기) print str[1:3] # Slicing(추출하기) 문자열 객체는 색인(index)되도록 순서대로 객체들이 모아져 있는 자료형이기 떄문에 아래 예제도 가능합니다. str = "boys be ambitious" # for 반복문 for seq in str: print seq for 반복문을 아직 공부하진 않았지만 잠시 살펴보겠습니다. str이라는 객체는 색인되도록 순서대 로 객체들을 모아놓은 자료형이기 때문에 for 반복문에서 str이라는 객체에서 색인된 객체 b, o, y, s, … 하나 하나를 가져와 seq라는 변수에 할당하고 이를 출력하는 것입니다. 3
  • 7. 단순히 문자열이라고 생각하면 절대 안됩니다. 2) 리스트(list)/튜플(tuple) 객체 이 둘은 거의 동일합니다. 문자열은 각 방(room)에 문자만 들어간다면, 리스트나 튜플은 각 방에 어떤 객체든지 담습니다. Java같은 언어에서 배열이랑 같다고 보시면 됩니다. 리스트와 튜플의 차이점은, 리스트는 변경 가능한(mutable) 자료형이고 튜플은 불변(immutable) 자료형이라는 점입니다. 그외엔 동일합니다. 파이썬에서는 Trailing comma(,)라는 것이 있습니다. 아래 예제처럼 아이템 나열이 끝났는데도 comma(,)로 마무리하는 것이 가능합니다. 안붙여도 되긴 하지만 어느 때는 trailing comma(,)를 붙여야 실행이 될 때가 있으니 관례상 comma(,)를 붙이는 게 좋습니다. listvar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ] tuplevar = (1, 2, 3, 4, 5, 6, ) print listvar[:2] # 0부터 2앞까지 추출하기 print tuplevar[1:-2] # 1부터 뒤에서 -2앞까지 추출하기 # 중첩 리스트 listA = ['a', 'b', 'c', ] listB = [listA, '2', '3', ] print listB[0][1] 3) 사전(dict) 객체 {'key1': 'value1', 'key2': 'value2'} 위와 같이 중괄호로 묵고 그 안에 Key: Value 쌍이 모인 객체를 사전 객체라고 합니다. 사전 객체 도 리스트나 튜플처럼 다양한 객체를 묶어냅니다. 다만, 순서대로(sequential) 객체를 나열해 담지 않고, 각 방(room)에 접근하는 별도 구분자(key)가 있어서 이 구분자로 각 방에 접근합니다. 순서열과 마찬가지로 대괄호 안에 접근할 방 구분자를 넣어 색인 및 추출을 할 수 있습니다. 순서 열은 색인 정수를 넣고, 사전은 키를 넣습니다. dictvar = {"one": 1, "two": 3}
  • 8. print dictvar['one'] print dictvar['two'] dictvar['two'] = 2 # 값 수정 print dictvar['two'] # 중첩 구조 dictvar["three"] = {'math': 100, 'english':90} # 새로운 아이템 삽입 print dictvar print dictvar["three"]["english"] # 중첩 구조 접근 방법 del dictvar["two"] # 사전형 객체 내 아이템 지우기 1.4 객체 메소드 1) 객체 타입 확인하기 객체는 메소드(행동)와 속성을 가지고 있습니다. 속성이라는 단어는 멤버 변수라고도 부릅니다. 해당 객체가 어떤 메소드를 가지고 있는지 파악하기 전에 먼저 객체가 어떤 데이터 타입인지 알아 보겠습니다. 아래와 같이 type()이라는 함수로 알아볼 수 있습니다. type(객체명) 2) 객체 메소드 확인하기 해당 객체가 가지고 있는 메소드와 속성들에는 무엇이 있는 지 알아보는 명령어는 아래와 같습니 다. dir(객체명) 3) 객체의 메소드 사용법
  • 9. 아래와 같이 점()으로 메소드 또는 속성에 접근할 수 있습니다. 객체.메소드 4) 문자열 객체의 메소드 아래와 같이 아무 문자열이나 검색해보면 알 수 있습니다. dir("studybee") 많은 메소드 중에는 이상하게 _(underbar) 2개로 시작하는 메소드도 있습니다. 이런 메소드는 지 금은 볼 필요가 없고 나중에 더 깊게 배울 때 조금씩 보면 좋을 거 같습니다. 이런 메소드 중에는 Operator Overloading이라는 것이 있는데 이는 연산자(+, -, /와 같은)들을 만날 때 자동으로 수행 하는 메소드도 있습니다. (ex. __add__()) 많은 메소드를 가지고 있지만 자주 쓰이는 문자열 메소드를 보겠습니다. 메소드 설명 startswith(suffix,[start], [end]) 지정한 문자열(suffix)로 시작하는지 검사. start와 end는 위 치값 endswith(suffix,[start].[end]) 지정한 문자열(suffix)로 끝나는지 검사. start와 end는 위치 값 join(순서열객체) 문자열을 분리자로 하여 순서열 항목을 이어 붙임 lower() 문자열을 소문자로 바꿈 upper() 문자열을 대문자로 바꿈 strip() 문자열의 앞뒤에 있는 공백 문자 제거 split([sep, [maxsplit]]) 문자열을 지정한 구분자(sep)로 분할, maxsplit은 최대분할횟 수 replace(old, new) 대상 문자열(old)을 대체할 문자열(new)로 바꿈 str = "studybee" print str.startswith("s")
  • 10. str = "study-bee" print str.replace("-", "") str="real-python" print str.split("-") 5) 리스트/튜플 객체의 메소드 메소드 설명 append(item) 리스트의 끝에 새로운 item 추가 count(str) 리스트나 튜플에서 str의 갯수를 변환 pop([i]) 리스트의 지정한 색인(i)에 있는 아이템을 반환하고 제거. 색인이 지정되지 않 으면 가장 마지막 아이템이 대상. remove(str) 리스트에서 str을 찾아 제거하고 따로 반환하지는 않음 리스트와 튜플의 차이점은 수정 가능하냐, 가능하지 않느냐임을 명심하면 좋겠습니다. lst = [] for item in range(4): # range라는 함수는 파이썬 내장 함수 lst.append(item) print lst str = "study-bee" lst = [] for seq in str.split("-"): lst.append(seq) print lst
  • 11. 6) 사전형 객체의 메소드 메소드 설명 clear() 사전 객체의 모든 항목 제거 copy() 사전 객체의 사본 생성 has_key(key) 지정한 key가 있는지 검사 get(key, [value]) key의 value을 반환, 없으면 지정한 별도의 value값 반환 keys() 사전 객체의 모든 key를 순서열로 변환 values() 사전 객체의 모든 value를 순서열로 변환 items() 사전 객체의 모든 항목을 (key, value) 형태로 변환 uid="studybee" passwd="12345" customer_info = {"studybee": "12345"} if uid in customer_info.keys(): if customer_info[uid] == passwd: print "Log In" else: print "Wrong Password" else: print "ID is Not Found" # coding: UTF-8 posting = {"id": 1, "title": "blah blah", "views": 300} author = posting.get('authour', 'studybee') if not author.startswith("s"): print u"s로 시작하지 않는군요." else: print u"s로 시작하는군요."
  • 12. 1.5 조건문 분기문이라고도 합니다. 이는 논리적 사고를 표현하는데 유용합니다. 사용법은 간단합니다. 아래 와 같습니다. if condition1: statement1 elif condition2: statement2 elif conditionN: statementN . . else: last statement 1.6 반복문 반복문은 논리적 구조에 있어서 반복적으로 실행할 필요가 있을 때 쓰입니다. 두 가지가 있습니다. 1. for 반복문 2. while 반복문 for item in items: items 의 값을 하나씩 꺼내 item 에 assign 하며 모든 항목 반복 continue 이번 수행을 하지 않고 다음으로 이동한다. break loop를 빠져나간다. for 반복문으로 반복처리를 하다가 특정 조건을 만났을 때 continue를 통해 다음문으로 이동할 수 도 있고 break를 통해 반복문을 빠져나올 수도 있습니다. items = "initialkommit@gmail.com"
  • 13. for item in items: if item == "@": break print item.upper(), 1.7 함수 함수는 판도라의 상자와 같습니다. 특정 Input이 특정 Output으로 나오는데 그 과정을 다른 이들 은 모르는 것입니다. 여기서 input은 함수의 인자값(Argument or Parameter)라고 하고 Output 은 함수의 반환값이라고 합니다. 1) 내장 함수 파이썬에는 이미 몇 가지 함수를 만들어 제공해주고 있습니다. 이를 내장 함수(Built-in Function) 이라고 합니다. 자세한 건 공식문서를 참고하시길 바라고, 여기서는 간단히 몇 개만 소개하겠습니 다. 내장 함수 설명 len(객체) 객체 내 항목 개수, ex) len([1,2,3]) -> 3개 any(객체) or와 같음, 한 개라도 참이면 참, 한 개라도 빈 값이 있으면 False all(객체) and와 같음, 모두 값이 있거나, 모두 빈 값이어야 True int(객체) 객체를 Integer 형태로 바꿈 str(객체) 객체를 String 형태로 바꿈 max(객체1, 객체2) 객체를 비교하여 큰 것을 반환 min(객체1, 객체2) 객체를 비교하여 작은 것을 반환 2) 함수 만들기 파이썬에서 함수는 실행(호출)가능한 객체(Callable Object)라고 합니다. 왜냐면 파이썬의 모든 것
  • 14. 은 객체이기 때문이지요. 형태는 아래와 같습니다. 함수명 앞에 def 라는 예약어를 사용합니다. def hihello(name, country="Korea"): print "Hi, " + name print "Hello, " + country return name + "-" + country print hihello("initialkommit") 위에서 보듯이 함수는 호출을 해야 실행을 합니다. 함수는 인자값으로 2개가 있는데 막상 호출할 때는 한 개만 넣었습니다. 이는 그 한 개의 값이 name이 되고 county는 인자값으로 넣어주지 않았 음에도 작동하는 이뉴는 default값으로 “Korea”를 선언해줬기 때문입니다. 그리고 함수는 반환값이 있을 수도 있고 없을 수도 있습니다. 만약 반환을 해야한다면 return이라 는 명령어를 사용합니다. 1.8 클래스 Class는 객체 지향 프로그래밍을 구현하는 역할을 합니다. 붕어빵 장사하시는 사장님이 붕어빵을 만들어내듯 우리 개발자는 한 개의 틀만으로 여러 개의 객체를 만들어낼 수 있습니다. 형식은 아래 와 같습니다. class 클래스명(상속받아올 부모 클래스): 멤버변수1 = 값1 멤버젼수2 = 값2 def 메소드명(self): pass 객체1 = 클래스명() 객체2 = 클래스명() 위와 같이 만든 클래스를 통해서 객체 혹은 인스턴스를 만들 수 있습니다. 객체와 인스턴스는 동일 한 말입니다. 객체에는 메소드와 속성을 가질 수 있다고 했습니다. 위에서 봐서 알 수 있듯이 속성 (멤버변수라고도 합니다.)과 메소드가 있는 것을 볼 수 있습니다. 클래스에서 부모 클르스로부터 상속받아 올 수도 있습니다. 이는 괄호에 상속받아올 부모 클래스 를 적어주면 됩니다.
  • 15. 만든 메소드의 괄호 안에 self라는 것이 있습니다. 이는 인스턴스를 만들 때 해당 인스턴스를 통해 서 실행하는 메소드를 의미합니다. 이 부분은 어려우니 나중에 설명하도록 하겠습니다. 위와 같이 하나의 클래스로부터 여러 개의 객체를 만들 수도 있습니다. 클래스는 부분은 우선 짧게 여기까지만 보고 넘어가겠습니다. 2. Python Example 아래 예제 문제를 풀면서 파이썬 프로그래밍에 더 친숙해져보는 시간을 갖겠습니다. 어려운 수준 은 아닙니다. 2.1 메르스 조심! camelCase를 잡자! 메르스가 창궐했습니다. IT 세계에서도 낙타를 조심해야합니다. 변수 Naming 방법 중에 camelCase라는 것이 있습니다. varName, numAge 처럼 중간 단어 혹은 키워드의 첫 글자만 대 문자로 하는 방법입니다. 물론 메르스는 쌍봉낙타의 경우에만 발생한다고 하지만, 우선 우리는 camelCase의 중간에 튀어나온 대문자를 찾아내 소문자로 바꿔봅시다. http://bit.ly/1HSrGQe 2.2 Hashtag를 추출해 list에 담기 Instagram, Twitter 등 우리에게 친숙한 SNS에는 #를 붙인 해쉬 태그 개념이 있습니다. 해당 posting의 성격을 사용자의 자유에 맏기는 것입니다. 이 해쉬태그만을 추출해 데이터베이스에 저 장하는 경우가 많습니다. 우선 우리는 해쉬태그를 추출해 list에 담아보겠습니다. http://bit.ly/1SdOrxu
  • 16. 2.3 모스 암호 해독하기 모스 신호가 들어왔습니다. 이를 해석하는 프로그램을 만들어 봅시다. http://bit.ly/1fuKLvj 3. Summary 이번 챕터에서는 파이썬 이라는 언어를 살펴보았습니다. 많은 내용을 보았지만 제일 중요한 것은 한 번은 직접 작성해서 실행해보는 것입니다. 그리고 어렵게 생각지 마시고 필요할 때 다시 본다는 마음으로 가져가면 좋을 것 같습니다. Written by initialkommit@Study-Bee. 1. 파이썬 기본 부분은 차경묵님의 자료를 인용했습니다. 2. 파이썬 데이터 타입 부분은 차경묵님의 자료를 인용했습니다. 3. 파이썬 데이터 타입 개요 부분은 차경묵님의 자료를 인용했습니다.