SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
안성현(@SH84AHN)
기본 문법
자료형, 변수, 함수, 제어문, 람다
1
오늘 다룰 것들.
2
함수변수
예외처리
반복문
자료형
람다yield
분기문
클로져
자료형 - None
3
널(null)
- 아무것도 없음을 나타냄.
> none = None
> type(none)
> <type 'NoneType'>
> a1
! 에러
- 다른 언어와 다르게 선언한다고 null 혹은 0 으로 초기화 되지 않음.
- 어떤 값이라도 할당(assign)이 되어야 한다.
자료형 - bool
4
참 : True, 거짓 : False, 대소문자에 주의!!
자료형 - 숫자형
5
정수 >>> a = 123
>>> a = -178
>>> a = 0
>>> a = 1.2
>>> a = -3.45
>>> a = 4.24E10
>>> a = 4.24e-10
>>> a = 0o177
>>> a = 0x8ff
>>> b = 0xABC
>>> a = 1+2j
>>> b = 3-4J
실수
8진수
16진수
복소수
지수표현법 사용
0o 또는 0O
(숫자 0 + 알파벳 o 또는 대문자 O)으로 시작
0X로 시작
자료형 - 숫자형 연산
6
다른 언어와 거의 다 비슷
 특이한 것들.
- i++ 의 증감연산자는 되지 않는다.
- 끝수 버리는 나머지 : //
예) 10/3.0 = 3.3333
10//3.0 = 3.0
- 승에 대한 표현 : a**n
예) 2**3 = 8, 10**3 = 1000
a = 10
print divmod(10, 3.0)
 기타 함수들
- abs
- pow
- divmod : 몫과 나머지를 반환
> (3, 1)
자료형 - 문자열
7
"Hello World"
'Python is fun'
"""Life is too short, You need python"""
'''Life is too short, You need python'''
문자열을 만드는 4가지 방법
"ash84's World"
'ash84"s World'
'ash84"s World'
"""Life is too short,
You need python"""
'''Life is too short,
You need python'''
따옴표, 쌍따옴표 포함
긴 문자열
시퀀스(문자열, 리스트, 튜플) 공통 연산
8
연산 설명
a + b 연결, 이어붙이기
a * n n 개의 복사본 만들기
a[i] 인덱스
a[i:j] 분할
e in a, e not in a 멤버 포함여부 검사
for e in a 반복문
all(a) a 의 모든 항목이 True 이면 True
any(a) a 의 항목중 하나라고 True 이면, True
len(a) a의 길이 반환
min(a) a 중에서 가장 작은 항목 반환
max(a) a 중에서 가장 큰 항목 반환
문자열 연산 예제
9
문자열 함수
10
문자 개수 세기 count
위치 알려주기 find, index
- index 는 없으면 예외발생, find는 -1 반환,
문자열 함수
11
문자열 삽입 join
- 리스트내 항목 연결시 많이 사용.
대소문자 변환 lower, upper, swapcase
문자열 함수
12
공백지우기 lstrip, rstrip, strip
바꾸기 replace
나누기 split
문자열 포맷팅
13
코드 설명
%s 문자열 (String)
%c 문자 한개(character)
%d 정수 (Integer)
%f 부동소수 (floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 '%s' 자체)
- print 문에서의 사용
문자열 포맷 코드
문자열 포맷팅
14
두개를 같이 쓰는 경우 괄호로 묶는다.
% 표시, 공백, 소수점 자리 제한
자료형 - list
15
- C# 의 ArrayList 와 유사
- [] 으로 표시
- nested 형태로 가능
> a = [] , a = list()
> b = [1, 2, 3]
> c = ['Life', 'is', 'too', 'short']
> d = [1, 2, 'Life', 'is']
> e = [1, 2, ['Life', 'is']]
자료형 - list
16
접근
수정, 삭제, 비우기
자료형 - list
17
추가 append
순서 바꾸기 reverse
정렬 sort, reverse 옵션 사용, (sort([cmp[, key[, reverse]]]))
자료형 - list
18
갯수세기 count
리스트 확장 extend
가져오기 & 삭제하기 pop
자료형 - list
19
삽입하기 insert
제거하기 remove
위치 반환 index
리스트 내포
20
리스트내 특정 조건이나 연산으로 새 리스트를 만들기 위한 연산자
[표현식 for 항목1 in 반복가능객체1: if 조건1
for 항목1 in 반복가능객체1: if 조건1
for 항목n in 반복가능객체n: if 조건n]
리스트 내포 - 조건을 붙이는 경우
21
예) 동물이름리스트에서 3글자로된 동물만 따로 빼라.
리스트 내포 - 여러 개의 반복문 사용
22
=> [6, 36, 216, 1296, 7, 49, 343, 2401, 8, 64, 512, 4096, 9, 81, 729, 6561]
자료형 - tuple
23
- () 으로 표시
- 리스트와 유사
- 값을 변경할수 없다.
- 리스트보다 적게 쓰인다.
> t1 = () t1 = tuple()
> t2 = (1,)
> t3 = (1,2,3)
> t4 = 1,2,3
> t5 = ('a', 'b', ('ab', 'cd'))
자료형 - tuple
24
기본 연산
함수에서 주로 사용
- return 에서 하나 이상 반환하는 경우, 가변인자
자료형 - tuple
25
지우거나 변경하려고 하면 에러 발생
자료형 - dict
26
- {} 으로 표시
- 순서열이 아닌, key : value 형태로 데이터 저장
{Key1:Value1, Key2:Value2, Key3:Value3 ...}
> d = {}
> d = dict()
> d = { “name” : “ash84”, “age” : 11}
자료형 - dict
27
기본 추가 및 삭제, 비우기
자료형 - dict
28
리스트 형식은 key로 쓸수 없다. 변경가능하기 때문에
tuple 는 변할수 없기 때문에 key 로 쓸수 있다.
자료형 - dict
29
key 리스트 만들기, keys
value 리스트 만들기, values
key, value 쌍으로 얻기, items
key로 value 가져오기, get
해당 key가 있는지 조사, in
변수
30
변수는 메모리공간을 가리키는것.
2
3
a 가 변수이고, 2 라는 메모리 공간을 가르키는 레퍼런스이다.
변수를 만들때는 ‘=‘ 할당을 해야한다. 선언만으로는 불가.
a
b
변수
31
 레퍼런스 카운트?
- 몇 개의 변수가 메모리 공간를 가리키는지?
- 가비지 컬렉션이 동작하는 단위,
- 해당 메모리공간을 가리키는 레퍼런스 카운트가 0이면 메모리 회수
- 2 이 있는 메모리공간(객체)을 가리키는 레퍼런스 카운트는 2개이다.
- 3 이 있는 메모리공간(객체)을 가리키는 레퍼런스 카운트는 1개이다.
2a
b
c 3
변수
32
 만드는 방법  삭제하는 방법, del
변수
33
 만드는 방법  삭제하는 방법, del
변수
34
 만드는 방법  삭제하는 방법, del
변수
35
 참조와 복사
- 할당의 기본은 참조로 동작
2a
b
1
참조로 연결되어 있기 때문에
변경가능한 데이터가 변경되면 다 영향을 받는다.
[10, 2, 3]a
b
변수
36
 리스트 복사본 생성 방식
방법 1, [:] 을 이용한 복사본 생성 방법 2, copy 모듈을 이용한 복사본 생성
변수
37
 전역변수, global 키워드로 사용시 지정해야 한다.
 단순히 같은 변수명이라고, 전역변수로 인식하지 않는다.
함수
38
기본 구조
def 함수명(입력 인수):
<수행할 문장1>
<수행할 문장2> ...
예)
함수
39
* 가변인자, tuple 로 받는다.
* 하나이상 return, tuple 로 반환 한다.
함수
40
* 함수의 인자선언에서 초기값 지정가능.
함수 - yield
41
 결과를 넘겨주는 역할? 그럼 return이랑 다른 점은?
함수 - yield
42
생성기(generator)를 만든다.
next()를 호출때마다 함수 실행
next() 호출시,
yield 문 까지 실행하고 멈춘다.
다시 호출하면
한번도 돌고, yield 문에서 멈춘다.
None을 반환, 혹은 StopIteration 예
외 발생시 종료
함수 - yield
43
종료되면 StopIteration 예외를 발생
예외처리로 종료처리
함수 - yield
44
close() 함수를 이용해서
중간에 종료 시킬수 있다.
람다(lambda)
45
이름도 요상한것, 익명함수, 축약형 함수
lambda 인자 : 표현식
이름이 없는 함수로 만들수 있다.
리스트 정렬시, key 를 lambda 로 만든 익명함수를 전달할수 있다.
람다(lambda)
46
예) 함수명 리스트를받아서 각 함수명이 “” 으로 묶이고, 쉼표로 연결된 문자열을 만들어라
내장함수
47
abs 절대값 돌려주는 함수 chr 아스키값을 문자로 변환/ord 문자를 아스키로 변환
dir 해당 객체가 가지고 있는 변수/함수 보여주기
내장함수
48
enumerate
- 시퀀스자료형(리스트, 터플, 문자열)을 입력으로 받아 enumerate객체를 리턴
- (순서, 값)의 형태를 가진다.
내장함수
49
hex 16진수, oct 8진수 변환
int/str 숫자형 혹은 문자열 형으로 변환
id 레퍼런스 보여주기
내장함수
50
map(함수, 반복가능한 자료형) 함수를 각각의 요소에 대입하고 리스트로 출력
input 사용자 입력 받는 함수 eval 실행가능한 문자열을 받아서 실행하고 결과를 보여준다.
내장함수
51
open 파일읽기, 지정한 읽기 방법에 따라서 입력을 받아서 파일객체 리턴
mode 설명
w 쓰기 모드로 파일 열기
r 읽기 모드로 파일 열기
a 추가 모드로 파일 열기
b 바이너리 모드로 파일 열기
별 다른 라이브러리 없이, 바로 사용가능.
내장함수
52
sorted 시퀀스 자료형을 정렬하는 역할,
.sort 는 호출한것 자체를 정렬하고 반영한다. 반환하지 않는다.
zip 동일한 개수의 자료형을 묶어주는 역할
함수안의 함수
53
1급 함수(First Class Function)
- 함수를 다른 함수에 인수로 전달
- 반환값으로 전달
- 변수나 자료구조에 저장 할수 있는 함수
함수 클로저
54
- 함수가 참조할수 있는 비지연변수나 일반변수를 저장한 참조환경이 함수와 함께 제공, 뭔애기?
- 쉽게 말하면, 반환시점의 함수객체가 내부의 지역변수, 비지역변수의 값을 유지한다.
abc1
abc1
abc23
dan1
dan11
dan23
함수 클로저
55
a, b, c = ‘a’, ‘b’, ‘c’
cache[‘abc1’]
a, b, c = ‘a’, ‘b’, ‘c’
cache[‘abc1’]
f1 f2
- 각각의 함수객체가 독립적인 이름공간을 갖는다.
- 각각의 공간은 함수객체(f1, f2)가 삭제될 때 까지 유지.
- 함수인데,
마치 클래스의 별도의 인스턴스를 만들어서 동작하는것처럼 사용.
- 내부 함수의 환경을 기록.
- 기존 함수에 추가기능을 넣어서 함수를 포장하려고 할때, 유용하다.
함수 클로저
56
a, b, c = ‘a’, ‘b’, ‘c’
cache[‘abc1’]
a, b, c = ‘a’, ‘b’, ‘c’
cache[‘abc1’]
f1 f2
(<cell at 0x01DB4ED0: str object at 0x01D84DE8>,
<cell at 0x01DBF5F0: str object at 0x01D84E00>,
<cell at 0x02501650: str object at 0x01E0E068>,
<cell at 0x02501670: dict object at 0x01DB2AE0>)
(<cell at 0x02501690: str object at 0x01D84458>,
<cell at 0x025016B0: str object at 0x01D84DE8>,
<cell at 0x025016D0: str object at 0x01D844D0>,
<cell at 0x025016F0: dict object at 0x025055D0>)
for
57
기본 스타일
for i in range(0, 10):
print i
for(int i=0; i<10; i++)
{ … }
@C#
@Python
for
58
list, tuple, 문자열
foreach (int element in arrayList)
{ … }
for e in elements:
pass
for c in "string":
print c
@C#
@Python
while
59
while 조건문:
명령문
# -*- coding:utf-8 -*-
treeHit = 0
while treeHit < 10:
treeHit = treeHit +1
print("나무를 %d번 찍었습니다." % treeHit)
if treeHit == 10:
print(“나무가 넘어갑니다.”)
무한루프
60
while 1:
명령문
while 1:
print "ash84"
if is_stop:
break
continue
61
그 자리에서 반복문으로 돌아가라 는 의미
a = 0
while a < 10:
a = a+1
if a % 2 == 0:
continue
if a % 5 == 0:
break
print(a)
> 1
3
2의 배수인 경우,
다음 문을 진행하지 않고 되돌아감.
if
62
기본 스타일
if a==1:
...
elif a==2:
...
else :
...
True vs. False
63
자료형 참 거짓
숫자 3 0
문자열 "abc" ""
list [1,2,3] []
tuple (1,2,3) ()
dict {"a":"b"} {}
거짓을 기억하자!
True vs. False
64
tag = get_tags()
if len(tag) > 0:
print "go tag"
else:
print "no tag"
tag = get_tags()
if tag:
print "go tag"
else:
print "no tag"
name = get_name()
if len(str) > 0:
print “name”
else:
print “input name”
name = get_name()
if str:
print “name”
else:
print “input name”
좀더 간결하게 쓸 수 있다. 근데 더 큰 문제가 있다면?
True vs. False
65
tag = get_tags()
if len(tag) > 0:
print "go tag"
else:
print "no tag"
name = get_name()
if len(str) > 0:
print “name”
else:
print “input name”
None 이 넘어온다면?
Traceback (most recent call last):
File "C:workspacetest.py", line 3, in <module>
if len(name) >0:
TypeError: object of type 'NoneType' has no len()
True vs. False
66
문제 없음.
None 인경우도 false 이기 때문에, 모두 커버
tag = get_tags()
if tag:
print "go tag"
else:
print "no tag"
name = get_name()
if str:
print “name”
else:
print “input name”
None 이 넘어온다면?
비교연산자... 는 다른 언어와 동일.
67
>, <, <=, >=, == , !=
and, or
68
&&, || 는 없습니다.
대신 and/or를 사용하시면 됩니다.
name = 'a'
if len(name) > 0 && name =='a':
print name
name = 'a'
if len(name) > 0 and name =='a':
print name
not
69
~가 아니면 의 의미
name = 'a'
if not name=='b':
print name
not 이 앞에 온다는 것에 주의
in
70
그 안에 있냐? 라는 의미
person = {'name':'ash84', 'age':21}
if 'name' in person:
print person['name'
person = ['name', 'age']
if 'name' in person:
print person
그 안에 없냐? not in
person = "ash84"
if 'ash' in person:
print person
dict 안에서 key가 있는지 확인
list 안에 해당 값이 있는지 확인
문자열 안에 해당 값이 포함되어 있는지 확인
switch-case 문은 없습니다.
71
예외처리
72
기본 스타일
try
{ … }
catch(Exception e)
{… }
finally { … }
@C#
try:
...
except Exception, e:
...
finally:
...
@Python
비슷함. catch => except
에러 발생시키기 throw => raise
def fly(self):
raise NotImplementedError
예외처리
73
여러 개 걸리게 하기
try:
...
except ZeroDivisionError:
…
except BufferError:
….
except OverflowError:
….
...
finally:
...
try:
...
except ZeroDivisionError, OverflowError :
...
finally:
...
예외처리
74
여러가지 예외 케이스들을 미리 정의(https://docs.python.org/2/library/exceptions.html)
정리
75
변수는 할당(=)을 해야 생성된다.
전역변수는 global
list, dict 만 기억하자. tuple은 변하지 않는것들.
클로저는 관련된 것들을 묶는다 라고 생각하자.
lambda 와 리스트 내포는 코드를 줄여준다.
if 문에서 False 의 경우를 기억하고 활용하자.
예외처리는 try-except-finally 쓰고 시작하자.

Más contenido relacionado

La actualidad más candente

파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403Yong Joon Moon
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301Yong Joon Moon
 
파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기Yong Joon Moon
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장자바스크립트 패턴 3장
자바스크립트 패턴 3장Software in Life
 
파이썬 iterator generator 이해하기
파이썬 iterator generator 이해하기파이썬 iterator generator 이해하기
파이썬 iterator generator 이해하기Yong Joon Moon
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기 Yong Joon Moon
 
파이썬 반복자 생성자 이해하기
파이썬 반복자 생성자 이해하기파이썬 반복자 생성자 이해하기
파이썬 반복자 생성자 이해하기Yong Joon Moon
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310Yong Joon Moon
 
python data model 이해하기
python data model 이해하기python data model 이해하기
python data model 이해하기Yong Joon Moon
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229Yong Joon Moon
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기Yong Joon Moon
 
파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311Yong Joon Moon
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612Yong Joon Moon
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기Yong Joon Moon
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기 Yong Joon Moon
 
Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713Yong Joon Moon
 

La actualidad más candente (20)

파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301
 
파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기파이썬 프로퍼티 디스크립터 이해하기
파이썬 프로퍼티 디스크립터 이해하기
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장자바스크립트 패턴 3장
자바스크립트 패턴 3장
 
파이썬 iterator generator 이해하기
파이썬 iterator generator 이해하기파이썬 iterator generator 이해하기
파이썬 iterator generator 이해하기
 
파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기
 
파이썬 반복자 생성자 이해하기
파이썬 반복자 생성자 이해하기파이썬 반복자 생성자 이해하기
파이썬 반복자 생성자 이해하기
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310
 
python data model 이해하기
python data model 이해하기python data model 이해하기
python data model 이해하기
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기
 
파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612
 
Reflect package 사용하기
Reflect package 사용하기Reflect package 사용하기
Reflect package 사용하기
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
 
Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713
 

Similar a 파이썬 기본 문법

파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법Terry Cho
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3Sunwoo Park
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summaryHoChul Shin
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Jaejin Yun
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기지수 윤
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작Terry Cho
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for testKyunghoon Kim
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리Booseol Shin
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, ScalabilityDongwook Lee
 

Similar a 파이썬 기본 문법 (20)

파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
Haskell study 4
Haskell study 4Haskell study 4
Haskell study 4
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3
 
Python3 brief summary
Python3 brief summaryPython3 brief summary
Python3 brief summary
 
Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버Erlang을 이용한 swap 서버
Erlang을 이용한 swap 서버
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
Haskell study 5
Haskell study 5Haskell study 5
Haskell study 5
 
Perl Script
Perl ScriptPerl Script
Perl Script
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for test
 
Lua 문법
Lua 문법Lua 문법
Lua 문법
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
 
Scalability
ScalabilityScalability
Scalability
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 

Más de SeongHyun Ahn

MQTT 를 이용한 주문시스템 개선
MQTT 를 이용한 주문시스템 개선 MQTT 를 이용한 주문시스템 개선
MQTT 를 이용한 주문시스템 개선 SeongHyun Ahn
 
github : 유용한 기능들
github : 유용한 기능들 github : 유용한 기능들
github : 유용한 기능들 SeongHyun Ahn
 
카피캣으로 시작하는 오픈소스
카피캣으로 시작하는 오픈소스 카피캣으로 시작하는 오픈소스
카피캣으로 시작하는 오픈소스 SeongHyun Ahn
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 SeongHyun Ahn
 
파이썬 파일처리 및 문자열 처리
파이썬 파일처리 및 문자열 처리 파이썬 파일처리 및 문자열 처리
파이썬 파일처리 및 문자열 처리 SeongHyun Ahn
 
파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄SeongHyun Ahn
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 SeongHyun Ahn
 
파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄SeongHyun Ahn
 
실용주의 머신러닝 CNN MNIST TENSORBOARD
실용주의 머신러닝 CNN MNIST TENSORBOARD실용주의 머신러닝 CNN MNIST TENSORBOARD
실용주의 머신러닝 CNN MNIST TENSORBOARDSeongHyun Ahn
 
Pycon APAC 2016 후기
Pycon APAC 2016 후기Pycon APAC 2016 후기
Pycon APAC 2016 후기SeongHyun Ahn
 
Introduction of scrum 안성현 20120606
Introduction of scrum 안성현 20120606Introduction of scrum 안성현 20120606
Introduction of scrum 안성현 20120606SeongHyun Ahn
 
디자인 패턴 데코레이터 패턴
디자인 패턴 데코레이터 패턴디자인 패턴 데코레이터 패턴
디자인 패턴 데코레이터 패턴SeongHyun Ahn
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장SeongHyun Ahn
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장SeongHyun Ahn
 

Más de SeongHyun Ahn (15)

MQTT 를 이용한 주문시스템 개선
MQTT 를 이용한 주문시스템 개선 MQTT 를 이용한 주문시스템 개선
MQTT 를 이용한 주문시스템 개선
 
github : 유용한 기능들
github : 유용한 기능들 github : 유용한 기능들
github : 유용한 기능들
 
카피캣으로 시작하는 오픈소스
카피캣으로 시작하는 오픈소스 카피캣으로 시작하는 오픈소스
카피캣으로 시작하는 오픈소스
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄
 
파이썬 파일처리 및 문자열 처리
파이썬 파일처리 및 문자열 처리 파이썬 파일처리 및 문자열 처리
파이썬 파일처리 및 문자열 처리
 
파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
 
파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄
 
파이썬 소개
파이썬 소개 파이썬 소개
파이썬 소개
 
실용주의 머신러닝 CNN MNIST TENSORBOARD
실용주의 머신러닝 CNN MNIST TENSORBOARD실용주의 머신러닝 CNN MNIST TENSORBOARD
실용주의 머신러닝 CNN MNIST TENSORBOARD
 
Pycon APAC 2016 후기
Pycon APAC 2016 후기Pycon APAC 2016 후기
Pycon APAC 2016 후기
 
Introduction of scrum 안성현 20120606
Introduction of scrum 안성현 20120606Introduction of scrum 안성현 20120606
Introduction of scrum 안성현 20120606
 
디자인 패턴 데코레이터 패턴
디자인 패턴 데코레이터 패턴디자인 패턴 데코레이터 패턴
디자인 패턴 데코레이터 패턴
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장
 

Último

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Último (6)

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

파이썬 기본 문법

  • 3. 자료형 - None 3 널(null) - 아무것도 없음을 나타냄. > none = None > type(none) > <type 'NoneType'> > a1 ! 에러 - 다른 언어와 다르게 선언한다고 null 혹은 0 으로 초기화 되지 않음. - 어떤 값이라도 할당(assign)이 되어야 한다.
  • 4. 자료형 - bool 4 참 : True, 거짓 : False, 대소문자에 주의!!
  • 5. 자료형 - 숫자형 5 정수 >>> a = 123 >>> a = -178 >>> a = 0 >>> a = 1.2 >>> a = -3.45 >>> a = 4.24E10 >>> a = 4.24e-10 >>> a = 0o177 >>> a = 0x8ff >>> b = 0xABC >>> a = 1+2j >>> b = 3-4J 실수 8진수 16진수 복소수 지수표현법 사용 0o 또는 0O (숫자 0 + 알파벳 o 또는 대문자 O)으로 시작 0X로 시작
  • 6. 자료형 - 숫자형 연산 6 다른 언어와 거의 다 비슷  특이한 것들. - i++ 의 증감연산자는 되지 않는다. - 끝수 버리는 나머지 : // 예) 10/3.0 = 3.3333 10//3.0 = 3.0 - 승에 대한 표현 : a**n 예) 2**3 = 8, 10**3 = 1000 a = 10 print divmod(10, 3.0)  기타 함수들 - abs - pow - divmod : 몫과 나머지를 반환 > (3, 1)
  • 7. 자료형 - 문자열 7 "Hello World" 'Python is fun' """Life is too short, You need python""" '''Life is too short, You need python''' 문자열을 만드는 4가지 방법 "ash84's World" 'ash84"s World' 'ash84"s World' """Life is too short, You need python""" '''Life is too short, You need python''' 따옴표, 쌍따옴표 포함 긴 문자열
  • 8. 시퀀스(문자열, 리스트, 튜플) 공통 연산 8 연산 설명 a + b 연결, 이어붙이기 a * n n 개의 복사본 만들기 a[i] 인덱스 a[i:j] 분할 e in a, e not in a 멤버 포함여부 검사 for e in a 반복문 all(a) a 의 모든 항목이 True 이면 True any(a) a 의 항목중 하나라고 True 이면, True len(a) a의 길이 반환 min(a) a 중에서 가장 작은 항목 반환 max(a) a 중에서 가장 큰 항목 반환
  • 10. 문자열 함수 10 문자 개수 세기 count 위치 알려주기 find, index - index 는 없으면 예외발생, find는 -1 반환,
  • 11. 문자열 함수 11 문자열 삽입 join - 리스트내 항목 연결시 많이 사용. 대소문자 변환 lower, upper, swapcase
  • 12. 문자열 함수 12 공백지우기 lstrip, rstrip, strip 바꾸기 replace 나누기 split
  • 13. 문자열 포맷팅 13 코드 설명 %s 문자열 (String) %c 문자 한개(character) %d 정수 (Integer) %f 부동소수 (floating-point) %o 8진수 %x 16진수 %% Literal % (문자 '%s' 자체) - print 문에서의 사용 문자열 포맷 코드
  • 14. 문자열 포맷팅 14 두개를 같이 쓰는 경우 괄호로 묶는다. % 표시, 공백, 소수점 자리 제한
  • 15. 자료형 - list 15 - C# 의 ArrayList 와 유사 - [] 으로 표시 - nested 형태로 가능 > a = [] , a = list() > b = [1, 2, 3] > c = ['Life', 'is', 'too', 'short'] > d = [1, 2, 'Life', 'is'] > e = [1, 2, ['Life', 'is']]
  • 17. 자료형 - list 17 추가 append 순서 바꾸기 reverse 정렬 sort, reverse 옵션 사용, (sort([cmp[, key[, reverse]]]))
  • 18. 자료형 - list 18 갯수세기 count 리스트 확장 extend 가져오기 & 삭제하기 pop
  • 19. 자료형 - list 19 삽입하기 insert 제거하기 remove 위치 반환 index
  • 20. 리스트 내포 20 리스트내 특정 조건이나 연산으로 새 리스트를 만들기 위한 연산자 [표현식 for 항목1 in 반복가능객체1: if 조건1 for 항목1 in 반복가능객체1: if 조건1 for 항목n in 반복가능객체n: if 조건n]
  • 21. 리스트 내포 - 조건을 붙이는 경우 21 예) 동물이름리스트에서 3글자로된 동물만 따로 빼라.
  • 22. 리스트 내포 - 여러 개의 반복문 사용 22 => [6, 36, 216, 1296, 7, 49, 343, 2401, 8, 64, 512, 4096, 9, 81, 729, 6561]
  • 23. 자료형 - tuple 23 - () 으로 표시 - 리스트와 유사 - 값을 변경할수 없다. - 리스트보다 적게 쓰인다. > t1 = () t1 = tuple() > t2 = (1,) > t3 = (1,2,3) > t4 = 1,2,3 > t5 = ('a', 'b', ('ab', 'cd'))
  • 24. 자료형 - tuple 24 기본 연산 함수에서 주로 사용 - return 에서 하나 이상 반환하는 경우, 가변인자
  • 25. 자료형 - tuple 25 지우거나 변경하려고 하면 에러 발생
  • 26. 자료형 - dict 26 - {} 으로 표시 - 순서열이 아닌, key : value 형태로 데이터 저장 {Key1:Value1, Key2:Value2, Key3:Value3 ...} > d = {} > d = dict() > d = { “name” : “ash84”, “age” : 11}
  • 27. 자료형 - dict 27 기본 추가 및 삭제, 비우기
  • 28. 자료형 - dict 28 리스트 형식은 key로 쓸수 없다. 변경가능하기 때문에 tuple 는 변할수 없기 때문에 key 로 쓸수 있다.
  • 29. 자료형 - dict 29 key 리스트 만들기, keys value 리스트 만들기, values key, value 쌍으로 얻기, items key로 value 가져오기, get 해당 key가 있는지 조사, in
  • 30. 변수 30 변수는 메모리공간을 가리키는것. 2 3 a 가 변수이고, 2 라는 메모리 공간을 가르키는 레퍼런스이다. 변수를 만들때는 ‘=‘ 할당을 해야한다. 선언만으로는 불가. a b
  • 31. 변수 31  레퍼런스 카운트? - 몇 개의 변수가 메모리 공간를 가리키는지? - 가비지 컬렉션이 동작하는 단위, - 해당 메모리공간을 가리키는 레퍼런스 카운트가 0이면 메모리 회수 - 2 이 있는 메모리공간(객체)을 가리키는 레퍼런스 카운트는 2개이다. - 3 이 있는 메모리공간(객체)을 가리키는 레퍼런스 카운트는 1개이다. 2a b c 3
  • 32. 변수 32  만드는 방법  삭제하는 방법, del
  • 33. 변수 33  만드는 방법  삭제하는 방법, del
  • 34. 변수 34  만드는 방법  삭제하는 방법, del
  • 35. 변수 35  참조와 복사 - 할당의 기본은 참조로 동작 2a b 1 참조로 연결되어 있기 때문에 변경가능한 데이터가 변경되면 다 영향을 받는다. [10, 2, 3]a b
  • 36. 변수 36  리스트 복사본 생성 방식 방법 1, [:] 을 이용한 복사본 생성 방법 2, copy 모듈을 이용한 복사본 생성
  • 37. 변수 37  전역변수, global 키워드로 사용시 지정해야 한다.  단순히 같은 변수명이라고, 전역변수로 인식하지 않는다.
  • 38. 함수 38 기본 구조 def 함수명(입력 인수): <수행할 문장1> <수행할 문장2> ... 예)
  • 39. 함수 39 * 가변인자, tuple 로 받는다. * 하나이상 return, tuple 로 반환 한다.
  • 40. 함수 40 * 함수의 인자선언에서 초기값 지정가능.
  • 41. 함수 - yield 41  결과를 넘겨주는 역할? 그럼 return이랑 다른 점은?
  • 42. 함수 - yield 42 생성기(generator)를 만든다. next()를 호출때마다 함수 실행 next() 호출시, yield 문 까지 실행하고 멈춘다. 다시 호출하면 한번도 돌고, yield 문에서 멈춘다. None을 반환, 혹은 StopIteration 예 외 발생시 종료
  • 43. 함수 - yield 43 종료되면 StopIteration 예외를 발생 예외처리로 종료처리
  • 44. 함수 - yield 44 close() 함수를 이용해서 중간에 종료 시킬수 있다.
  • 45. 람다(lambda) 45 이름도 요상한것, 익명함수, 축약형 함수 lambda 인자 : 표현식 이름이 없는 함수로 만들수 있다. 리스트 정렬시, key 를 lambda 로 만든 익명함수를 전달할수 있다.
  • 46. 람다(lambda) 46 예) 함수명 리스트를받아서 각 함수명이 “” 으로 묶이고, 쉼표로 연결된 문자열을 만들어라
  • 47. 내장함수 47 abs 절대값 돌려주는 함수 chr 아스키값을 문자로 변환/ord 문자를 아스키로 변환 dir 해당 객체가 가지고 있는 변수/함수 보여주기
  • 48. 내장함수 48 enumerate - 시퀀스자료형(리스트, 터플, 문자열)을 입력으로 받아 enumerate객체를 리턴 - (순서, 값)의 형태를 가진다.
  • 49. 내장함수 49 hex 16진수, oct 8진수 변환 int/str 숫자형 혹은 문자열 형으로 변환 id 레퍼런스 보여주기
  • 50. 내장함수 50 map(함수, 반복가능한 자료형) 함수를 각각의 요소에 대입하고 리스트로 출력 input 사용자 입력 받는 함수 eval 실행가능한 문자열을 받아서 실행하고 결과를 보여준다.
  • 51. 내장함수 51 open 파일읽기, 지정한 읽기 방법에 따라서 입력을 받아서 파일객체 리턴 mode 설명 w 쓰기 모드로 파일 열기 r 읽기 모드로 파일 열기 a 추가 모드로 파일 열기 b 바이너리 모드로 파일 열기 별 다른 라이브러리 없이, 바로 사용가능.
  • 52. 내장함수 52 sorted 시퀀스 자료형을 정렬하는 역할, .sort 는 호출한것 자체를 정렬하고 반영한다. 반환하지 않는다. zip 동일한 개수의 자료형을 묶어주는 역할
  • 53. 함수안의 함수 53 1급 함수(First Class Function) - 함수를 다른 함수에 인수로 전달 - 반환값으로 전달 - 변수나 자료구조에 저장 할수 있는 함수
  • 54. 함수 클로저 54 - 함수가 참조할수 있는 비지연변수나 일반변수를 저장한 참조환경이 함수와 함께 제공, 뭔애기? - 쉽게 말하면, 반환시점의 함수객체가 내부의 지역변수, 비지역변수의 값을 유지한다. abc1 abc1 abc23 dan1 dan11 dan23
  • 55. 함수 클로저 55 a, b, c = ‘a’, ‘b’, ‘c’ cache[‘abc1’] a, b, c = ‘a’, ‘b’, ‘c’ cache[‘abc1’] f1 f2 - 각각의 함수객체가 독립적인 이름공간을 갖는다. - 각각의 공간은 함수객체(f1, f2)가 삭제될 때 까지 유지. - 함수인데, 마치 클래스의 별도의 인스턴스를 만들어서 동작하는것처럼 사용. - 내부 함수의 환경을 기록. - 기존 함수에 추가기능을 넣어서 함수를 포장하려고 할때, 유용하다.
  • 56. 함수 클로저 56 a, b, c = ‘a’, ‘b’, ‘c’ cache[‘abc1’] a, b, c = ‘a’, ‘b’, ‘c’ cache[‘abc1’] f1 f2 (<cell at 0x01DB4ED0: str object at 0x01D84DE8>, <cell at 0x01DBF5F0: str object at 0x01D84E00>, <cell at 0x02501650: str object at 0x01E0E068>, <cell at 0x02501670: dict object at 0x01DB2AE0>) (<cell at 0x02501690: str object at 0x01D84458>, <cell at 0x025016B0: str object at 0x01D84DE8>, <cell at 0x025016D0: str object at 0x01D844D0>, <cell at 0x025016F0: dict object at 0x025055D0>)
  • 57. for 57 기본 스타일 for i in range(0, 10): print i for(int i=0; i<10; i++) { … } @C# @Python
  • 58. for 58 list, tuple, 문자열 foreach (int element in arrayList) { … } for e in elements: pass for c in "string": print c @C# @Python
  • 59. while 59 while 조건문: 명령문 # -*- coding:utf-8 -*- treeHit = 0 while treeHit < 10: treeHit = treeHit +1 print("나무를 %d번 찍었습니다." % treeHit) if treeHit == 10: print(“나무가 넘어갑니다.”)
  • 61. continue 61 그 자리에서 반복문으로 돌아가라 는 의미 a = 0 while a < 10: a = a+1 if a % 2 == 0: continue if a % 5 == 0: break print(a) > 1 3 2의 배수인 경우, 다음 문을 진행하지 않고 되돌아감.
  • 63. True vs. False 63 자료형 참 거짓 숫자 3 0 문자열 "abc" "" list [1,2,3] [] tuple (1,2,3) () dict {"a":"b"} {} 거짓을 기억하자!
  • 64. True vs. False 64 tag = get_tags() if len(tag) > 0: print "go tag" else: print "no tag" tag = get_tags() if tag: print "go tag" else: print "no tag" name = get_name() if len(str) > 0: print “name” else: print “input name” name = get_name() if str: print “name” else: print “input name” 좀더 간결하게 쓸 수 있다. 근데 더 큰 문제가 있다면?
  • 65. True vs. False 65 tag = get_tags() if len(tag) > 0: print "go tag" else: print "no tag" name = get_name() if len(str) > 0: print “name” else: print “input name” None 이 넘어온다면? Traceback (most recent call last): File "C:workspacetest.py", line 3, in <module> if len(name) >0: TypeError: object of type 'NoneType' has no len()
  • 66. True vs. False 66 문제 없음. None 인경우도 false 이기 때문에, 모두 커버 tag = get_tags() if tag: print "go tag" else: print "no tag" name = get_name() if str: print “name” else: print “input name” None 이 넘어온다면?
  • 67. 비교연산자... 는 다른 언어와 동일. 67 >, <, <=, >=, == , !=
  • 68. and, or 68 &&, || 는 없습니다. 대신 and/or를 사용하시면 됩니다. name = 'a' if len(name) > 0 && name =='a': print name name = 'a' if len(name) > 0 and name =='a': print name
  • 69. not 69 ~가 아니면 의 의미 name = 'a' if not name=='b': print name not 이 앞에 온다는 것에 주의
  • 70. in 70 그 안에 있냐? 라는 의미 person = {'name':'ash84', 'age':21} if 'name' in person: print person['name' person = ['name', 'age'] if 'name' in person: print person 그 안에 없냐? not in person = "ash84" if 'ash' in person: print person dict 안에서 key가 있는지 확인 list 안에 해당 값이 있는지 확인 문자열 안에 해당 값이 포함되어 있는지 확인
  • 72. 예외처리 72 기본 스타일 try { … } catch(Exception e) {… } finally { … } @C# try: ... except Exception, e: ... finally: ... @Python 비슷함. catch => except 에러 발생시키기 throw => raise def fly(self): raise NotImplementedError
  • 73. 예외처리 73 여러 개 걸리게 하기 try: ... except ZeroDivisionError: … except BufferError: …. except OverflowError: …. ... finally: ... try: ... except ZeroDivisionError, OverflowError : ... finally: ...
  • 74. 예외처리 74 여러가지 예외 케이스들을 미리 정의(https://docs.python.org/2/library/exceptions.html)
  • 75. 정리 75 변수는 할당(=)을 해야 생성된다. 전역변수는 global list, dict 만 기억하자. tuple은 변하지 않는것들. 클로저는 관련된 것들을 묶는다 라고 생각하자. lambda 와 리스트 내포는 코드를 줄여준다. if 문에서 False 의 경우를 기억하고 활용하자. 예외처리는 try-except-finally 쓰고 시작하자.