본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 15. 함수 호출과 매개변수 선언에 있어서 *와 **의 사용 규칙 출처 : 윤성우의 열혈 파이썬 : 중급 15. 함수 호출과 매개변수 선언에 있어서 와 *의 사용 규칙 iterable 객체와 매개변수 func(*iterable) : iterable 객체를 전달하면서 *을 붙여서 함수 호출할 때 리스트/튜플/문자열을 풀어서 전달 func(*dict) : dict 객체를 전달하면서 *을 붙여서 함수 호출할 때 딕셔너리의 값을 풀어서 전달 def func(*args) : 함수를 정의하면서 매개변수 args에 * 붙일 때 def func(*args) : 함수를 정의하면서 매개변수 args에 * 붙일 때 func(*iterable) def who(a, b, c): print(a, b, c, sep = ', ') # list who(*[1, 2, 3]) # 1, 2.. 더보기
[윤성우의 열혈 파이썬 중급편] 14. dict의 루핑 기술과 컴프리헨션 출처 : 윤성우의 열혈 파이썬 : 중급 14. dict의 루핑 기술과 컴프리헨션 d = dict(a = 1, b = 2, c = 3) for k in d: print(d[k], end = ', ') # 1, 2, 3 dict.keys() : 딕셔너리의 키들만 참조하고자 할 때 dict.values() : 딕셔너리의 값들만 참조하고자 할 때 dict.items() : 딕셔너리의 키와 값을 튜플 형태로 참조하고자 할 때 위의 세 메소드가 반환하는 것을 가리켜 view 객체라고 한다 view 객체 d = dict(a = 1, b = 2, c = 3) for k in d.keys(): print(k, end = ', ') # a, b, c for v in d.values(): pri.. 더보기
[윤성우의 열혈 파이썬 중급편] 13. dict의 생성과 zip 출처 : 윤성우의 열혈 파이썬 : 중급 13. dict의 생성과 zip d1 = {'a': 1, 'b': 2, 'c': 3} print(d) # {'a': 1, 'b': 2, 'c': 3} type({}) # # dict 클래스 직접 생성 d2 = dict([('a', 1), ('b', 2), ('c', 3)]) # 딕셔너리 키가 문자열인 경우 d3 = dict(a = 1, b = 2, c = 3) # zip 함수 이용 d4 = dict(zip(['a', 'b', 'c'], [1, 2, 3])) assert(d1 == d2 == d3 .. 더보기
[윤성우의 열혈 파이썬 중급편] 12. named tuple 출처 : 윤성우의 열혈 파이썬 : 중급 12. named tuple named tuple의 이해와 작성 tri_one = (12, 15) print(tri_one) # (12, 15) from collections import namedtuple Tri = namedtuple('Triangle', ['bottom', 'height']) t = Tri(3, 7) # named tuple 객체 생성 print(t[0], t[1]) # 일반 tuple과 동일한 방법으로 접근 가능 print(t, bottom, t.height) # 이름으로도 접근 가능 t[0] = 15 # error 튜플 성격을 갖는 클래스 기본 골격은 튜플이나 일반 튜플과 달리 위치별로 이름을 갖는.. 더보기
[윤성우의 열혈 파이썬 중급편] 11. 튜플의 패킹과 언패킹 출처 : 윤성우의 열혈 파이썬 : 중급 11. 튜플의 패킹과 언패킹 튜플 패킹 : 하나 이상의 값을 튜플로 묶는 행위 튜플 언패킹 : 튜플에 묶여 있는 값들을 풀어내는 행위 tri_one = (12, 15) print(tri_one) tri_three = (12, 25) bt, ht = tri_three print(bt, ht) nums = (1, 2, 3, 4, 5) n1, n2, *others = nums # 둘 이상의 값을 리스트로 묶을 때 *를 사용 print(n1) # 1 print(n2) # 2 print(othres) # [3, 4, 5] first, *others, last = nums *others, n1, n2 = nums # 리스트를 대상으로도 동일하게 동작한다 nums = [1, 2.. 더보기
[윤성우의 열혈 파이썬 중급편] 10. generator 표현식 출처 : 윤성우의 열혈 파이썬 : 중급 10. generator 표현식 하나의 문장으로 generator를 구성하는 방법 generator 함수 & generator 표현식 generator 표현식은 generator 함수와 마찬가지로 generator 객체를 생성하는 방법이다 generator 표현식의 문법 구성이 list 컴프리헨션과 거의 같다 def show_all(s): for i in s: print(i, end = ' ') st = [2 * i for i in range(1, 10)] show_all(st) def times2(): for i in range(1, 10): yield 2 * i g = times2() show_all(g) g = (2 * i for i in ran.. 더보기
[윤성우의 열혈 파이썬 중급편] 09. generator 함수 출처 : 윤성우의 열혈 파이썬 : 중급 09. generator 함수 generator은 iterator 객체의 한 종류 generator를 만드는 두가지 방법 generator 함수(function) generator 표현식(expression) 함수 기반의 제너레이터 def gen_num(): print('first number') yield 1 print('second number') yield 2 print('third number') yield 3 gen = gen_num() # generator 객체 생성 type(gen) # next(gen) # first number \n 1 gen_num이 일반 함수라면 그 안에 있는 모든 내용이 실행되나, 이 .. 더보기
[윤성우의 열혈 파이썬 중급편] 07. map & filter 출처 : 윤성우의 열혈 파이썬 : 중급 07. map & filter map def pow(n) return n ** 2 st1 = [1, 2, 3] st2 = [pow(st1[0]), pow(st1[1]), pow(st1h[2])] print(st2) # [1, 4, 9] st1 = [1, 2, 3] st2 = list(map(pow, st1)) print(st2) # [1, 4, 9] map 함수는 st1에 저장된 값들을 하나씩 전달하면서 pow 함수를 호출해준다 이 때 map의 두 번째 전달 대상은 iterable 객체여야 한다 map은 iterator 객체 하나를 반환한다 def pow(n) return n ** 2 st = [1, 2, 3] ir = map(pow, st) for i in ir:.. 더보기
[윤성우의 열혈 파이썬 중급편] 06. 객체처럼 다뤄지는 함수 그리고 람다 출처 : 윤성우의 열혈 파이썬 : 중급 06. 객체처럼 다뤄지는 함수 그리고 람다 파이썬에서는 함수도 객체 def func1(n): return n def func2(): print("hello") type(func1) # type(func2) # def say1(): print('hello') def say2(): print('hi-') def caller(fct): fct() caller(say1) # 매개변수에 함수를 전달 caller(say2) def fct_fac(n): def exp(x): return x ** n return exp f2 = fct_fac(2) f3 = fct_fac(3) f2(4) # 16 f3(4) # 64 함수를 정의하면 파이썬은 그 함수의 .. 더보기
[윤성우의 열혈 파이썬 중급편] 05. Iterable 객체와 Iterator 객체 출처 : 윤성우의 열혈 파이썬 : 중급 05. Iterable 객체와 Iterator 객체 iter 함수 ds = [1, 2, 3, 4] for i in ds: print(i, end = ' ') ir = iter(ds) next(ir) # 1 next(ir) # 2 next(ir) # 3 next(ir) # 4 next(ir) # StopIteration error iter 함수는 리스트에서 값을 꺼내는 기능을 제공하는 객체를 생성해서 반환 꺼내는 방법과 꺼낸 값을 처리하는 방법에 있어서도 유연성이 생긴다 Iterable 객체와 Iterator 객체의 구분 iterable 객체를 대상으로 iter 함수를 호출해서 iterator 객체를 만든다 iterator 객체를 생성할 수 있는 대상이.. 더보기