SlideShare a Scribd company logo
1 of 41
Download to read offline
파이썬2.7 기초
공부한 것 정리
2015.03.18
점프 투 파이썬
https://wikidocs.net/book/1
공부 참고
- 무료다.
- 문법이 쉽다.
- 문장 흐름이 자연스럽고
명확하고 간결하다.
- 접착언어다.
장점4
-> 사용하기에 제약이 없다.
-> 배우기 쉽다.
-> 코드를 이해하기 쉽다.
파이썬은 가장 좋은 방법 하나를 선호한다.
-> 사용 범위가 넓다.
- 하드웨어 제어가 어렵다.
- 매우 복잡하고 반복적인 연산이 어렵다.
- 따라서 OS 같은 시스템 프로그래밍이 어렵다.
- 하지만 다른 언어로 제작된 모듈을 사용할 수 있기 때문에
단점을 어느정도 극복할 수 있다.
단점3
GUI : Tkinter, wxPython, PyQT, PyGTK
Web : Flask, Django
Operation : Numeric Python
DB : pickleㄹㄹ
주요 모듈1
우분투에서
버전 확인 : $ python -V
인터프리터 실행 : $python 또는 $python3
종료 : Ctrl + D
SublimeText3
http://www.ubuntuupdates.org/ppa/sublime_3?dist=trusty
설치
SublimeText3에서 새 문서를 저장한 후에 Ctrl+B
빌드
- print #표준 출력
- raw_input() #표준 입력
- del #변수 제거 or 요소 제거
- in #들어있는지
- is #맞는지
- open() #파일 열기
- range(0, 10, 2) #셋째인수는 간격
- type() #자료형 반환 int, float,
str, list, dict, set, tuple,
instance, classobj
- pow()
- abs()
- chr(65) #아스키 코드를 문자로
- ord(‘A’) #문자를 아스키코드값으로
- dir([]) #변수가 가지고 있는 함수(동작)
와 속성(상태)을 보여줍니다. (클래스 변
수 포함)
- divmod(3,2) #=(1,1), 목과 나머
지를 튜플로 반환
내장 함수13
- enumerate([1,2,3]) #자료구조 자
료형을 인덱스와 값의 쌍을 가지는
enumerate객체로 반환합니다.
for i, value in enumerate([1,2,3])과 같
이 주로 for문과 함께 쓰입니다.
단, dict는 keys로 만듭니다.
- eval(‘divmod(3,2)’) #실행 가능한
문자열을 실행한 결과값을 반환합니다.
- int(‘0xA’, 10) #=10
int(1.1) #= 1
- hex(10) #=’0xA’, 정수->문자열
- oct(10) #=’0o12’ 정수->문자열
- id(1), id(a) #객체의 레퍼런스를 반환
합니다.
- isinstance(obj, class) # 인스턴스
가 클래스의 인스턴스인지
- list(filter(lambda x: x > 0, [1,-3,2,0,-5,6])) #
시퀀스 자료형을 받아 요소들을 걸러내
어 다시 리스트로 반환합니다.
내장 함수8
- lamdba a,b: a+b
#= def sum(a,b): return a+b
[lambda a,b:a+b, lambda a,b:a*b]
- len() #자료구조 자료형의 요소 개수
를 반환합니다.
- list() #자료구조 자료형을 요소들의 순
서를 지켜서 복사해서 리스트로 반환합
니다. 단, dict는 keys를 리스트로 만듭
니다.
- list(map(lambda e: e * 2, [1,-3,2,0,-5,6])) #
시퀀스 자료형을 받아 요소들마다 첫번
째 인자로 받은 함수를 수행하고 모아서
새 리스트로 반환합니다. filter()와 같은
사용방법
- min([1,2,3]), min(‘abcd’)
- max([1,2,3]), min(‘abcd’)
- zip([1,2,3],[4,5,6]) #= [[1,4],[2,5],
[3,6]], 요소마다 짝을 지어 새 리스트로
반환
내장 함수7
- tuple() #자료구조 자료형을 요소들의
순서를 지켜서 복사해서 튜플로 반환합
니다. 단, dict는 keys로 만듭니다.
- sorted() #자료구조 자료형을 요소들
을 정렬해서 새 리스트로 반환합니다.
단, dict는 = keys로 만듭니다.
- repr(‘hi’) #=”’hi’”주로 eval의 인자로
쓰입니다
- str(1) #= ‘1’
내장 함수4
자료형 - Number5,7
operations
+ - * ** / // %
** : exponentiation
% : modulus
// : 나머지를 뺀 몫 연산자
data types
정수 : 1
실수 : 1.2, 0.3e-10
복소수 : 1 + 2x
8진수 : 0o12
16진수 : 0xAB
declarations(4가지)
str = “싱글라인”
str = '싱글라인'
str = """멀티라인
입니다."""
str = '''멀티라인
입니다.'''
자료형 - String4
문자열은 immutable
comments
'''멀티라인'''과 """멀티라인"""은 대
입연산자(=)를 사용하지 않았을 때
주석이 됩니다.
싱글라인 주석은 #내용
자료형 - String11
b 백스페이스
000 null문자
 문자 ''
' single quote
” double quote
escaping characters
n 개행
v 수직탭
t 수평탭
r 캐리지 리턴
f 폼 피드
a eep
자료형 - String
operations : + *
concatenation : ‘i’ + ‘ am’ + ‘ a boy’
repeating : ‘go’ * 2
indexing
‘life’[2] #=’f’
‘life’[-1] #=’e’
slicing
‘life’[0:4] #=’life’
‘life’[:2] #=’li’
‘life’[2:] #=’fe’
자료형 - String7
formatting(서식화)
print ‘i like %s and %s’ % (‘pizza’,
‘bulgogi’)
print '[%5s][%-5s][%.1f][%5.1f]' %
('go', 'go', 12.34, 12.34)
#=[ go][go ][12.3][ 12.3]
formatting characters
%s 문자열
%c 문자 한개
%d 정수
%f 부동소수
%o 8진수
%x 16진수
%%문자 '%'
자료형 - String12
functions
‘bssin’.upper()
‘bssin’.lower()
‘bssin’.count('b’) #=1
‘bssin’.find(‘b’) #=0, 없으면 -1
‘bssin’.index(‘b’) #=0, 없으면 에러
‘,’.join(‘abc’) #=’a,b,c’
‘-’.join(‘[‘a’,’b’,’c’]) #=’a-b-c’
‘ bssin ’.lstrip() #=’bssin ‘
‘ bssin ’.rstrip() #=’ bssin’
‘ bssin ’.strip() #=’bssin’
‘bssin’.replace(‘bs’, ‘ab’)
‘bs si n’.split(‘ ’) #=[‘bs’,’si’,’n’]
‘Bsshin’.swapcase() #=’bSSHIN’
자료형 - List
declarations
list = []
list = [1, a, [2, ‘b’]]
indexing
list[-1][1] #=’b’
slicing
[1,2,3][:2] #=[1,2]
operations : + *
[1,2]+[3,4] #=[1,2,3,4]
[1,2] * 2 #=[1,2,1,2]
자료형 - List9
modifications
[1,2,3][:2] = [] #=[3]
[1,2,3][:2] = [4,5] #=[4,5,3]
del list[1] #=[1,3]
functions
[‘a’,1].append(‘b’)
[‘b’,1,‘a’,2,’a’].sort() #=None
#sort()는 반환값 없기 때문
list=[‘b’,1,‘a’,2,’a’]
list.sort() #[1,2,‘a’,’a’,’b’]
list.reverse()
자료형 - List
functions
[‘a’,1].index(‘b’) #=에러
[‘a’,1].insert(1, ’b’) #=[‘a’,’b’,1]
[‘a’,1].remove(1) #= 리턴값 없음
[‘a’,1].pop() #= 리턴값 1
[‘a’,1].pop(0) #= 리턴값 'a’
[1,2,3,4,1,2].count(1) #=2
[1,2].extend([3,4]) #=[1,2,3,4]
deep copy
1. new_list = old_list[:]
2. new_list = list(old_list)
3. from copy import copy
new_list = copy(old_list)
자료형 - Tuple2
declarations
tuple = ()
tuple = (1,’a’)
tuple = 1, ‘a’
functions
index(), count()
튜플은 immutable
리스트와 사용 방법이 같습니다.
immutable이기 때문에 요소를 수정
하는 함수는 제외됩니다.
자료형 - Dictionary
declarations
dict = {‘k1’:’v1’, ‘k2’:2, 3:’v3’}
modifications
dict[‘k4’] = 4 #={‘k1’:’v1’, ‘k2’:2, 3:’
v3’, ‘k4’:4}
del dict[‘k4’]
cautions
key값으로 리스트나 딕셔너리, 셋
을 사용할 수 없습니다. 딕셔너리는
중복키를 허용하지 않는데, 리스트
와 딕셔셔너리, 셋은 immutable이
아니기 때문입니다.
자료형 - Dictionary
functions
.keys() #키의 리스트를 반환
.values() #값의 리스트를 반환
.items() #쌍들을 튜플로 묶은 리스
트를 반환
.clear()
finding
‘key’ in dict
자료형 - Set7
declarations
set1 = {‘a’,2,3}
set1 = set([‘a’,2,3])
set1 = set(‘abcda’) #= {‘a’,’b’,’c’,’d’}
operations
&(교집합), |(합집합), -(차집합)
set은 중복無 순서無
key값으로 non-immutable사용 불가
functions
.intersection()
.union()
.difference()
.add(‘1’) #1개 추가
.update([‘1’,’2’,’3’]) #여러 개 추가
.remove(‘1’) #1개 제거
.clear()
참과 거짓
자료구조에 경우
차있으면 참, 비어있으면 거짓
[1,2,3], ‘hi’ #= True
[], {}, (), ‘’ #= False
List, Dict, Set, Tuple 이 네 가지
자료구조는 비교연산 시 모든 요소
들의 값을 비교합니다. ->
값에 경우
0, None이 아닌 모든 값 #= True
0, None #= False
그러나 요소 중 instance타입이 있
다면 그것들이 완전히 같은 값을 갖
고 있다고 해도 다르게 봅니다.
변수
a = 1;
b = 1;
a is b #=True
del a #=b변수가 제거됨.
del b #=a변수가 제거됨.
1의 reference count가 0이 되어 1
이 메모리에서 제거됨.
del 하지 않아도 지역변수는 알아서
GC됨.
In Python, whitespace is used to structure code.
def spam():
eggs = 12 #왼쪽처럼 반드시 들여쓰기
return eggs
공백(whitespace)
조건문
declarations
if expression:
pass #아무 동작도 안 함
elif expression:
pass
else
print ‘else’
if expression: pass #한 줄짜리
comparation operators
==, !=, >, >=, <, <=, in, not in, is
logical operators
or, and, not
반복문
declarations
while 1: #무한 루프
pass
break절
continue절
declarations
for i in 리스트:
pass
for i in range(0, 10): #0,1,2, … ,9
pass
for i, j, k in [[1,2,3],[4,5,6]]:
print i + j + k
함수
declarations
def func(a, b):
return a + b
def no_return(a, b):
pass
def no_return2(a, b):
return
def two_return():
return 1, 2 #=(1,2)튜플
declarations
def default_args(a, b=1, c=1):
return a+b+c #correct
def default_args(a, b=1, c):
return a+b+c #wrong
#SyntaxError: non-default argument
follows default argument
def func(* args): for arg in args: pass
sys모듈
$python basic.py aa bb
import sys
for arg in sys.argv:
print arg
#=‘basic.py’, ‘aa’, ‘bb’
입출력
input
str = raw_input(‘input :’)
output
같은 결과
1. print(‘i ‘ + ‘am ‘ + ‘a ‘ + ‘boy’)
2. print(‘i ” “am ” “a ” “boy”)
3. print(“i”, “am”, “a”, “boy”)
file output
f = open(‘newfile.txt’, w) #r,w,a
f.write(‘new content’);
f.close()
입출력8
file input
f = open(‘newfile.txt’, r)
f.readline() #=[‘line1’]
f.readlines() #=[‘line1’,’line2’, …]
f.read() #=’all data in file’
f.tell() #현재 위치
f.seek(0) #위치 이동
클래스
definitions
class Calc(Parent): #Parent는 상속할 클래스
magic_num = 10 #클래스 변수, 반시 초기화해야 합니다.
__init__(self, name): #생성자를 정의했으므로 디폴트 생성자가 정의되지 않습니다.
self.name = name #self에 this객체가 들어옵니다. name은 인스턴스 변수
def set_name(self, name): #name변수 사용을 위해 반드시 먼저 name을 초기화
self.name = name #생성자에서 이미 초기화하므로 사실 set_name()은 필요 없
음.
def sum(self, a, b): #클래스 함수
return a + b
클래스
definitions
class Calc:
magic_num = 10
__del__(self): #소멸자
print ‘i will be back’
>>> c = Calc()
>>> Calc.magic_num #=c.magic_num, 클래
스변수에 접근
>>> del c
overriding 지원함!
overloading 지원 안 함!
operator overroading만 지원!
function overroading이 필요할 땐
var args 기능을 사용합니다.
def func(* args) :
클래스16
operation overloading
__add__(self, other) +(이항) A + B, A += B
__pos__(self) +(단항) +A
__sub__(self, other) - (이항) A - B, A -= B
__neg__(self) - (단항) -A
__mul__(self, other) * A * B, A *= B
__truediv__(self, other) / A / B, A /= B
__floordiv__(self, other) // A // B, A //= B
__mod__(self, other) % A % B, A %= B
__pow__(self, other) pow(), ** pow(A, B), A ** B
__lshift__(self, other) << A << B, A <<= B
__rshift__(self, other) >> A >> B, A >>= B
__and__(self, other) & A & B, A &= B
__xor__(self, other) ^ A ^ B, A ^= B
__or__(self, other) | A | B, A |= B
__invert__(self) ~ ~A
__abs__(self) abs() abs(A)
모듈
usage
#def func() in mod.py
1. import mod
print mod.func()
#클래스도 같은 방법으로 이용
2. from mod import func
print func() #또는 import *
#def func() in 외부 경로의 mod.py
import sys
sys.path.append(외부 경로)
import mod
#메인 모듈 종료 후 다시 실행하면 path가 초
기화 됨.
모듈
reload
import mod
#이 시점에 mod모듈이 수정됨.
mod.reload() #수정된 내용을 갱신
print mod.func()
#인터프리터로 실행 중일 때 유용
#인터프리터가 재실행 되면 당연히 자동 갱
신
#import를 한 번 더 호출해도 갱신 안 됨.
testing
if __name__ ==’__main__’
#이 모듈(파일)의 테스트 구문
#이 모듈을 import해서 사용하는 경
우에는 위에 if문이 False가 되기 때
문에 테스트용도로 사용합니다.
from 뒤엔 패키지 또는 모듈만 올 수 있습니다.
import 방법
1. import 패키지.패키지.모듈 #안 되는 듯
2. from 패키지.패키지 import 모듈 #모듈 사용
3. from 패키지.패키지.모듈 import 함수, 변수 등 #
모듈 내에서 import로 지정한 것을 사용
4. from 패키지.패키지.모듈 import * # 모듈 내 모든
것 사용
5. from 패키지.패키지 import * #패키지 내 모든 모
듈 사용, 단 해당 패키지의 __init__.py에 __all__
= ['모듈']이 기록되어 있아야 함.
패키지
pakage_a/
__init__.py
dir_a/
__init__.py
gogo.py
dir_b/
__init__.py
soso.py
__init__.py : 해당 디렉토리가 패키지
의 일부림을 알려는 역할
from ..패키지 import 모듈 #..은 상위
디렉토리, 즉 relative 패키지
try:
4 / 0
except ZeroDivisionError as e:
print(e)
try:
raise NotImplementedError
except NotImplementedError as e:
print(e)
예외 처리
FileNotFoundError: [Errno 2] No such
file or directory:
ZeroDivisionError: division by zero
IndexError: list index out of range
import os
os.environ
os.environ[‘PATH’]
os.chdir(‘/home/bssin’)
os.getcwd()
os.system(‘system command’)
os.popen() ??
os.mkdir()
os.rmdir()
os.unlink(‘filename’) #delete file
os.rename(‘src’, ‘dst’)
import shutil
shutil.copy("src", "dst")
외장 함수
import sys
sys.argv
sys.exit()
sys.path
sys.path.append()
import pickle
pickle.dump(data, f)
data = pickle.load(f)
import io
f = io.StringIO()
f.write(“aaa”), value = f.getvalue()
f.close()
등등등…
import random
import glob
import tempfile
import time
import datetime
import calendar
import _thead
import webbrowser
import datetime from datetime
now = datetime.now()
print now
print now.year
print now.month
print now.day
print now.hour
print now.minute
print now.second
날짜와 시간(datetime)

More Related Content

What's hot

10장 문자열 클래스와 파일 클래스
10장 문자열 클래스와 파일 클래스10장 문자열 클래스와 파일 클래스
10장 문자열 클래스와 파일 클래스유석 남
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229Yong Joon Moon
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function건희 김
 
파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍Yong Joon Moon
 
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps정연 최
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229Yong Joon Moon
 
Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택JinTaek Seo
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Jaejin Yun
 
일단 시작하는 코틀린
일단 시작하는 코틀린일단 시작하는 코틀린
일단 시작하는 코틀린Park JoongSoo
 
Ruby Enumerator(루비 열거자) 이해하기
Ruby Enumerator(루비 열거자) 이해하기Ruby Enumerator(루비 열거자) 이해하기
Ruby Enumerator(루비 열거자) 이해하기Daegwon Kim
 
파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409Yong Joon Moon
 
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow정연 최
 
3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib웅식 전
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기sung ki choi
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3Sunwoo Park
 
Swift3 generic
Swift3 genericSwift3 generic
Swift3 genericEunjoo Im
 

What's hot (20)

10장 문자열 클래스와 파일 클래스
10장 문자열 클래스와 파일 클래스10장 문자열 클래스와 파일 클래스
10장 문자열 클래스와 파일 클래스
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function
 
파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍
 
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps
[새차원, 코틀린(Kotlin) 강좌] 6. Packages, Return and Jumps
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229
 
Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택
 
Boost
BoostBoost
Boost
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버
 
일단 시작하는 코틀린
일단 시작하는 코틀린일단 시작하는 코틀린
일단 시작하는 코틀린
 
Kotlin with fp
Kotlin with fpKotlin with fp
Kotlin with fp
 
Ruby Enumerator(루비 열거자) 이해하기
Ruby Enumerator(루비 열거자) 이해하기Ruby Enumerator(루비 열거자) 이해하기
Ruby Enumerator(루비 열거자) 이해하기
 
파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409파이썬+Operator+이해하기 20160409
파이썬+Operator+이해하기 20160409
 
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow
[새차원, 코틀린(Kotlin) 강좌] 5. Control Flow
 
3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
skku cp2 w4
skku cp2 w4skku cp2 w4
skku cp2 w4
 
강의자료4
강의자료4강의자료4
강의자료4
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3
 
Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
 

Viewers also liked

파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기Yong Joon Moon
 
Python3 6장 모듈만들기
Python3 6장 모듈만들기Python3 6장 모듈만들기
Python3 6장 모듈만들기Jihoon Kong
 
파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷Jihoon Kong
 
확률 통계 (파이썬)
확률 통계 (파이썬)확률 통계 (파이썬)
확률 통계 (파이썬)Yong Joon Moon
 
Coder’s High 2014 풀이
Coder’s High 2014 풀이Coder’s High 2014 풀이
Coder’s High 2014 풀이Baekjoon Choi
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301Yong Joon Moon
 

Viewers also liked (6)

파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기
 
Python3 6장 모듈만들기
Python3 6장 모듈만들기Python3 6장 모듈만들기
Python3 6장 모듈만들기
 
파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷파이썬3 17장 파이썬과 인터넷
파이썬3 17장 파이썬과 인터넷
 
확률 통계 (파이썬)
확률 통계 (파이썬)확률 통계 (파이썬)
확률 통계 (파이썬)
 
Coder’s High 2014 풀이
Coder’s High 2014 풀이Coder’s High 2014 풀이
Coder’s High 2014 풀이
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301
 

Similar to 파이썬2.7 기초 공부한 것 정리

스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장SeongHyun Ahn
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
Python + Excel
Python + Excel Python + Excel
Python + Excel POSTECH
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for BioinformaticsHyungyong Kim
 
EcmaScript6(2015) Overview
EcmaScript6(2015) OverviewEcmaScript6(2015) Overview
EcmaScript6(2015) Overviewyongwoo Jeon
 
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features SummaryChris Ohk
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 HwpKimjeongmoo
 
나에 첫번째 자바8 람다식 지앤선
나에 첫번째 자바8 람다식   지앤선나에 첫번째 자바8 람다식   지앤선
나에 첫번째 자바8 람다식 지앤선daewon jeong
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기Yong Joon Moon
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11OnGameServer
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3ssuseraf62e91
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 SKKU
 

Similar to 파이썬2.7 기초 공부한 것 정리 (20)

스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장
 
IPython
IPythonIPython
IPython
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
Python + Excel
Python + Excel Python + Excel
Python + Excel
 
Python - Module
Python - ModulePython - Module
Python - Module
 
06장 함수
06장 함수06장 함수
06장 함수
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for Bioinformatics
 
EcmaScript6(2015) Overview
EcmaScript6(2015) OverviewEcmaScript6(2015) Overview
EcmaScript6(2015) Overview
 
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
 
Introduce php7
Introduce php7Introduce php7
Introduce php7
 
나에 첫번째 자바8 람다식 지앤선
나에 첫번째 자바8 람다식   지앤선나에 첫번째 자바8 람다식   지앤선
나에 첫번째 자바8 람다식 지앤선
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디
 

More from Booseol Shin

2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴Booseol Shin
 
2015 deploy gate 시작 가이드
2015   deploy gate 시작 가이드2015   deploy gate 시작 가이드
2015 deploy gate 시작 가이드Booseol Shin
 
HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터Booseol Shin
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)Booseol Shin
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)Booseol Shin
 
초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기Booseol Shin
 
머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역Booseol Shin
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기Booseol Shin
 
캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드Booseol Shin
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오Booseol Shin
 
03.GitHub으로 웹페이지
03.GitHub으로 웹페이지03.GitHub으로 웹페이지
03.GitHub으로 웹페이지Booseol Shin
 

More from Booseol Shin (12)

2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴
 
2015 deploy gate 시작 가이드
2015   deploy gate 시작 가이드2015   deploy gate 시작 가이드
2015 deploy gate 시작 가이드
 
HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
 
초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기
 
머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기
 
캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
 
03.GitHub으로 웹페이지
03.GitHub으로 웹페이지03.GitHub으로 웹페이지
03.GitHub으로 웹페이지
 

파이썬2.7 기초 공부한 것 정리

  • 3. - 무료다. - 문법이 쉽다. - 문장 흐름이 자연스럽고 명확하고 간결하다. - 접착언어다. 장점4 -> 사용하기에 제약이 없다. -> 배우기 쉽다. -> 코드를 이해하기 쉽다. 파이썬은 가장 좋은 방법 하나를 선호한다. -> 사용 범위가 넓다.
  • 4. - 하드웨어 제어가 어렵다. - 매우 복잡하고 반복적인 연산이 어렵다. - 따라서 OS 같은 시스템 프로그래밍이 어렵다. - 하지만 다른 언어로 제작된 모듈을 사용할 수 있기 때문에 단점을 어느정도 극복할 수 있다. 단점3
  • 5. GUI : Tkinter, wxPython, PyQT, PyGTK Web : Flask, Django Operation : Numeric Python DB : pickleㄹㄹ 주요 모듈1
  • 6. 우분투에서 버전 확인 : $ python -V 인터프리터 실행 : $python 또는 $python3 종료 : Ctrl + D SublimeText3 http://www.ubuntuupdates.org/ppa/sublime_3?dist=trusty 설치
  • 7. SublimeText3에서 새 문서를 저장한 후에 Ctrl+B 빌드
  • 8. - print #표준 출력 - raw_input() #표준 입력 - del #변수 제거 or 요소 제거 - in #들어있는지 - is #맞는지 - open() #파일 열기 - range(0, 10, 2) #셋째인수는 간격 - type() #자료형 반환 int, float, str, list, dict, set, tuple, instance, classobj - pow() - abs() - chr(65) #아스키 코드를 문자로 - ord(‘A’) #문자를 아스키코드값으로 - dir([]) #변수가 가지고 있는 함수(동작) 와 속성(상태)을 보여줍니다. (클래스 변 수 포함) - divmod(3,2) #=(1,1), 목과 나머 지를 튜플로 반환 내장 함수13
  • 9. - enumerate([1,2,3]) #자료구조 자 료형을 인덱스와 값의 쌍을 가지는 enumerate객체로 반환합니다. for i, value in enumerate([1,2,3])과 같 이 주로 for문과 함께 쓰입니다. 단, dict는 keys로 만듭니다. - eval(‘divmod(3,2)’) #실행 가능한 문자열을 실행한 결과값을 반환합니다. - int(‘0xA’, 10) #=10 int(1.1) #= 1 - hex(10) #=’0xA’, 정수->문자열 - oct(10) #=’0o12’ 정수->문자열 - id(1), id(a) #객체의 레퍼런스를 반환 합니다. - isinstance(obj, class) # 인스턴스 가 클래스의 인스턴스인지 - list(filter(lambda x: x > 0, [1,-3,2,0,-5,6])) # 시퀀스 자료형을 받아 요소들을 걸러내 어 다시 리스트로 반환합니다. 내장 함수8
  • 10. - lamdba a,b: a+b #= def sum(a,b): return a+b [lambda a,b:a+b, lambda a,b:a*b] - len() #자료구조 자료형의 요소 개수 를 반환합니다. - list() #자료구조 자료형을 요소들의 순 서를 지켜서 복사해서 리스트로 반환합 니다. 단, dict는 keys를 리스트로 만듭 니다. - list(map(lambda e: e * 2, [1,-3,2,0,-5,6])) # 시퀀스 자료형을 받아 요소들마다 첫번 째 인자로 받은 함수를 수행하고 모아서 새 리스트로 반환합니다. filter()와 같은 사용방법 - min([1,2,3]), min(‘abcd’) - max([1,2,3]), min(‘abcd’) - zip([1,2,3],[4,5,6]) #= [[1,4],[2,5], [3,6]], 요소마다 짝을 지어 새 리스트로 반환 내장 함수7
  • 11. - tuple() #자료구조 자료형을 요소들의 순서를 지켜서 복사해서 튜플로 반환합 니다. 단, dict는 keys로 만듭니다. - sorted() #자료구조 자료형을 요소들 을 정렬해서 새 리스트로 반환합니다. 단, dict는 = keys로 만듭니다. - repr(‘hi’) #=”’hi’”주로 eval의 인자로 쓰입니다 - str(1) #= ‘1’ 내장 함수4
  • 12. 자료형 - Number5,7 operations + - * ** / // % ** : exponentiation % : modulus // : 나머지를 뺀 몫 연산자 data types 정수 : 1 실수 : 1.2, 0.3e-10 복소수 : 1 + 2x 8진수 : 0o12 16진수 : 0xAB
  • 13. declarations(4가지) str = “싱글라인” str = '싱글라인' str = """멀티라인 입니다.""" str = '''멀티라인 입니다.''' 자료형 - String4 문자열은 immutable comments '''멀티라인'''과 """멀티라인"""은 대 입연산자(=)를 사용하지 않았을 때 주석이 됩니다. 싱글라인 주석은 #내용
  • 14. 자료형 - String11 b 백스페이스 000 null문자 문자 '' ' single quote ” double quote escaping characters n 개행 v 수직탭 t 수평탭 r 캐리지 리턴 f 폼 피드 a eep
  • 15. 자료형 - String operations : + * concatenation : ‘i’ + ‘ am’ + ‘ a boy’ repeating : ‘go’ * 2 indexing ‘life’[2] #=’f’ ‘life’[-1] #=’e’ slicing ‘life’[0:4] #=’life’ ‘life’[:2] #=’li’ ‘life’[2:] #=’fe’
  • 16. 자료형 - String7 formatting(서식화) print ‘i like %s and %s’ % (‘pizza’, ‘bulgogi’) print '[%5s][%-5s][%.1f][%5.1f]' % ('go', 'go', 12.34, 12.34) #=[ go][go ][12.3][ 12.3] formatting characters %s 문자열 %c 문자 한개 %d 정수 %f 부동소수 %o 8진수 %x 16진수 %%문자 '%'
  • 17. 자료형 - String12 functions ‘bssin’.upper() ‘bssin’.lower() ‘bssin’.count('b’) #=1 ‘bssin’.find(‘b’) #=0, 없으면 -1 ‘bssin’.index(‘b’) #=0, 없으면 에러 ‘,’.join(‘abc’) #=’a,b,c’ ‘-’.join(‘[‘a’,’b’,’c’]) #=’a-b-c’ ‘ bssin ’.lstrip() #=’bssin ‘ ‘ bssin ’.rstrip() #=’ bssin’ ‘ bssin ’.strip() #=’bssin’ ‘bssin’.replace(‘bs’, ‘ab’) ‘bs si n’.split(‘ ’) #=[‘bs’,’si’,’n’] ‘Bsshin’.swapcase() #=’bSSHIN’
  • 18. 자료형 - List declarations list = [] list = [1, a, [2, ‘b’]] indexing list[-1][1] #=’b’ slicing [1,2,3][:2] #=[1,2] operations : + * [1,2]+[3,4] #=[1,2,3,4] [1,2] * 2 #=[1,2,1,2]
  • 19. 자료형 - List9 modifications [1,2,3][:2] = [] #=[3] [1,2,3][:2] = [4,5] #=[4,5,3] del list[1] #=[1,3] functions [‘a’,1].append(‘b’) [‘b’,1,‘a’,2,’a’].sort() #=None #sort()는 반환값 없기 때문 list=[‘b’,1,‘a’,2,’a’] list.sort() #[1,2,‘a’,’a’,’b’] list.reverse()
  • 20. 자료형 - List functions [‘a’,1].index(‘b’) #=에러 [‘a’,1].insert(1, ’b’) #=[‘a’,’b’,1] [‘a’,1].remove(1) #= 리턴값 없음 [‘a’,1].pop() #= 리턴값 1 [‘a’,1].pop(0) #= 리턴값 'a’ [1,2,3,4,1,2].count(1) #=2 [1,2].extend([3,4]) #=[1,2,3,4] deep copy 1. new_list = old_list[:] 2. new_list = list(old_list) 3. from copy import copy new_list = copy(old_list)
  • 21. 자료형 - Tuple2 declarations tuple = () tuple = (1,’a’) tuple = 1, ‘a’ functions index(), count() 튜플은 immutable 리스트와 사용 방법이 같습니다. immutable이기 때문에 요소를 수정 하는 함수는 제외됩니다.
  • 22. 자료형 - Dictionary declarations dict = {‘k1’:’v1’, ‘k2’:2, 3:’v3’} modifications dict[‘k4’] = 4 #={‘k1’:’v1’, ‘k2’:2, 3:’ v3’, ‘k4’:4} del dict[‘k4’] cautions key값으로 리스트나 딕셔너리, 셋 을 사용할 수 없습니다. 딕셔너리는 중복키를 허용하지 않는데, 리스트 와 딕셔셔너리, 셋은 immutable이 아니기 때문입니다.
  • 23. 자료형 - Dictionary functions .keys() #키의 리스트를 반환 .values() #값의 리스트를 반환 .items() #쌍들을 튜플로 묶은 리스 트를 반환 .clear() finding ‘key’ in dict
  • 24. 자료형 - Set7 declarations set1 = {‘a’,2,3} set1 = set([‘a’,2,3]) set1 = set(‘abcda’) #= {‘a’,’b’,’c’,’d’} operations &(교집합), |(합집합), -(차집합) set은 중복無 순서無 key값으로 non-immutable사용 불가 functions .intersection() .union() .difference() .add(‘1’) #1개 추가 .update([‘1’,’2’,’3’]) #여러 개 추가 .remove(‘1’) #1개 제거 .clear()
  • 25. 참과 거짓 자료구조에 경우 차있으면 참, 비어있으면 거짓 [1,2,3], ‘hi’ #= True [], {}, (), ‘’ #= False List, Dict, Set, Tuple 이 네 가지 자료구조는 비교연산 시 모든 요소 들의 값을 비교합니다. -> 값에 경우 0, None이 아닌 모든 값 #= True 0, None #= False 그러나 요소 중 instance타입이 있 다면 그것들이 완전히 같은 값을 갖 고 있다고 해도 다르게 봅니다.
  • 26. 변수 a = 1; b = 1; a is b #=True del a #=b변수가 제거됨. del b #=a변수가 제거됨. 1의 reference count가 0이 되어 1 이 메모리에서 제거됨. del 하지 않아도 지역변수는 알아서 GC됨.
  • 27. In Python, whitespace is used to structure code. def spam(): eggs = 12 #왼쪽처럼 반드시 들여쓰기 return eggs 공백(whitespace)
  • 28. 조건문 declarations if expression: pass #아무 동작도 안 함 elif expression: pass else print ‘else’ if expression: pass #한 줄짜리 comparation operators ==, !=, >, >=, <, <=, in, not in, is logical operators or, and, not
  • 29. 반복문 declarations while 1: #무한 루프 pass break절 continue절 declarations for i in 리스트: pass for i in range(0, 10): #0,1,2, … ,9 pass for i, j, k in [[1,2,3],[4,5,6]]: print i + j + k
  • 30. 함수 declarations def func(a, b): return a + b def no_return(a, b): pass def no_return2(a, b): return def two_return(): return 1, 2 #=(1,2)튜플 declarations def default_args(a, b=1, c=1): return a+b+c #correct def default_args(a, b=1, c): return a+b+c #wrong #SyntaxError: non-default argument follows default argument def func(* args): for arg in args: pass
  • 31. sys모듈 $python basic.py aa bb import sys for arg in sys.argv: print arg #=‘basic.py’, ‘aa’, ‘bb’ 입출력 input str = raw_input(‘input :’) output 같은 결과 1. print(‘i ‘ + ‘am ‘ + ‘a ‘ + ‘boy’) 2. print(‘i ” “am ” “a ” “boy”) 3. print(“i”, “am”, “a”, “boy”)
  • 32. file output f = open(‘newfile.txt’, w) #r,w,a f.write(‘new content’); f.close() 입출력8 file input f = open(‘newfile.txt’, r) f.readline() #=[‘line1’] f.readlines() #=[‘line1’,’line2’, …] f.read() #=’all data in file’ f.tell() #현재 위치 f.seek(0) #위치 이동
  • 33. 클래스 definitions class Calc(Parent): #Parent는 상속할 클래스 magic_num = 10 #클래스 변수, 반시 초기화해야 합니다. __init__(self, name): #생성자를 정의했으므로 디폴트 생성자가 정의되지 않습니다. self.name = name #self에 this객체가 들어옵니다. name은 인스턴스 변수 def set_name(self, name): #name변수 사용을 위해 반드시 먼저 name을 초기화 self.name = name #생성자에서 이미 초기화하므로 사실 set_name()은 필요 없 음. def sum(self, a, b): #클래스 함수 return a + b
  • 34. 클래스 definitions class Calc: magic_num = 10 __del__(self): #소멸자 print ‘i will be back’ >>> c = Calc() >>> Calc.magic_num #=c.magic_num, 클래 스변수에 접근 >>> del c overriding 지원함! overloading 지원 안 함! operator overroading만 지원! function overroading이 필요할 땐 var args 기능을 사용합니다. def func(* args) :
  • 35. 클래스16 operation overloading __add__(self, other) +(이항) A + B, A += B __pos__(self) +(단항) +A __sub__(self, other) - (이항) A - B, A -= B __neg__(self) - (단항) -A __mul__(self, other) * A * B, A *= B __truediv__(self, other) / A / B, A /= B __floordiv__(self, other) // A // B, A //= B __mod__(self, other) % A % B, A %= B __pow__(self, other) pow(), ** pow(A, B), A ** B __lshift__(self, other) << A << B, A <<= B __rshift__(self, other) >> A >> B, A >>= B __and__(self, other) & A & B, A &= B __xor__(self, other) ^ A ^ B, A ^= B __or__(self, other) | A | B, A |= B __invert__(self) ~ ~A __abs__(self) abs() abs(A)
  • 36. 모듈 usage #def func() in mod.py 1. import mod print mod.func() #클래스도 같은 방법으로 이용 2. from mod import func print func() #또는 import * #def func() in 외부 경로의 mod.py import sys sys.path.append(외부 경로) import mod #메인 모듈 종료 후 다시 실행하면 path가 초 기화 됨.
  • 37. 모듈 reload import mod #이 시점에 mod모듈이 수정됨. mod.reload() #수정된 내용을 갱신 print mod.func() #인터프리터로 실행 중일 때 유용 #인터프리터가 재실행 되면 당연히 자동 갱 신 #import를 한 번 더 호출해도 갱신 안 됨. testing if __name__ ==’__main__’ #이 모듈(파일)의 테스트 구문 #이 모듈을 import해서 사용하는 경 우에는 위에 if문이 False가 되기 때 문에 테스트용도로 사용합니다.
  • 38. from 뒤엔 패키지 또는 모듈만 올 수 있습니다. import 방법 1. import 패키지.패키지.모듈 #안 되는 듯 2. from 패키지.패키지 import 모듈 #모듈 사용 3. from 패키지.패키지.모듈 import 함수, 변수 등 # 모듈 내에서 import로 지정한 것을 사용 4. from 패키지.패키지.모듈 import * # 모듈 내 모든 것 사용 5. from 패키지.패키지 import * #패키지 내 모든 모 듈 사용, 단 해당 패키지의 __init__.py에 __all__ = ['모듈']이 기록되어 있아야 함. 패키지 pakage_a/ __init__.py dir_a/ __init__.py gogo.py dir_b/ __init__.py soso.py __init__.py : 해당 디렉토리가 패키지 의 일부림을 알려는 역할 from ..패키지 import 모듈 #..은 상위 디렉토리, 즉 relative 패키지
  • 39. try: 4 / 0 except ZeroDivisionError as e: print(e) try: raise NotImplementedError except NotImplementedError as e: print(e) 예외 처리 FileNotFoundError: [Errno 2] No such file or directory: ZeroDivisionError: division by zero IndexError: list index out of range
  • 40. import os os.environ os.environ[‘PATH’] os.chdir(‘/home/bssin’) os.getcwd() os.system(‘system command’) os.popen() ?? os.mkdir() os.rmdir() os.unlink(‘filename’) #delete file os.rename(‘src’, ‘dst’) import shutil shutil.copy("src", "dst") 외장 함수 import sys sys.argv sys.exit() sys.path sys.path.append() import pickle pickle.dump(data, f) data = pickle.load(f) import io f = io.StringIO() f.write(“aaa”), value = f.getvalue() f.close() 등등등… import random import glob import tempfile import time import datetime import calendar import _thead import webbrowser
  • 41. import datetime from datetime now = datetime.now() print now print now.year print now.month print now.day print now.hour print now.minute print now.second 날짜와 시간(datetime)