본문 바로가기

Python

[윤성우의 열혈 파이썬 중급편] 18. 자료형 분류와 set & frozenset 출처 : 윤성우의 열혈 파이썬 : 중급 18. 자료형 분류와 set & frozenset 시퀀스 타입(sequence type) list, tuple, range, string 저장된 값의 순서 정보가(위치 정보가) 존재 인덱싱 연산 : s[0], s[1] ... 슬라이싱 연산 : s[0:3], s[5:9] 매핑 타입(mapping type) set, frozenset 저장된 값의 순서 또는 위치 정보를 기록하지 않는 자료형 수학의 '집합'을 표현한 자료형 '수학의 집합은 저장 순서를 유지하지 않는다' '수학의 집합은 중복된 값의 저장을 허용하지 않는다' set, frozenset A = {'a', 'c', 'd', &.. 더보기
[윤성우의 열혈 파이썬 중급편] 17. dict & OrderedDict 출처 : 윤성우의 열혈 파이썬 : 중급 17. dict & OrderedDict dict은 저장 순서를 유지하기 시작했다 from colletions import OrderedDict od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 for kv in od.items(): print(kv) python 3.7부터 dict가 저장순서를 유지하기 때문에 OrderedDict을 이러한 목적으로 사용할 필요는 없다 그래도 OrderedDict을 써야할 이유가 있다면? d1 = dict(a = 1, b = 2, c = 3) d2 = dict(c = 3, a = 1, b = 2) print(d1 == d2) # True, d.. 더보기
[윤성우의 열혈 파이썬 중급편] 16. dict & defaultdict 출처 : 윤성우의 열혈 파이썬 : 중급 16. dict & defaultdict 키가 존재할 때와 존재하지 않을 때 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] = 1 # 키 'red'의 값을 1로 변경 d = {'red': 3, 'white': 2} d['red'] = 1 # 'red' : 1 추가 저장되어 있는 값 참조 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] += 1 # 키 'red'의 값을 1 증가 d = {'r.. 더보기
[윤성우의 열혈 파이썬 중급편] 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 .. 더보기
[윤성우의 열혈 파이썬 중급편] 01. reference count와 garbage collection 출처 : 윤성우의 열혈 파이썬 : 중급 01. reference count와 garbage collection 변수 s가 문자열 'Garbage Collection'를 참조한다 s = 'Garbage Collection' 리스트는 소멸 대상이 된다 r = [1,2,3] r = 'simple' # 변수 r이 참조 대상을 문자열로 바꿈 r1 = [1,2,3,4] # 리스트의 rf = 1 r2 = r1 # 리스트의 rf = 2 r1 = 'simple' # 리스트의 rf = 1 r2 = 'happy' # 리스트의 rf = 0 -> gc 대상이 됨 reference count : 객체를 참조하는 변수의 수 reference count가 0이 .. 더보기
[Effective Python 복습] Chapter 7. 협력 파이썬 코딩의 기술 Chapter 7. 협력 49. 모든 함수, 클래스, 모듈에 docstring을 작성하자 모든 모듈, 클래스, 함수를 docstring으로 문서화하자. 코드를 업데이트할 때마다 관련 문서도 업데이트하자 모듈 : 모듈의 내용과 모든 사용자가 알아둬야 할 중요한 클래스와 함수를 설명한다 클래스 : class문 다음의 docstring에서 클래스의 동작, 중요한 속성, 서브클래스의 동작을 설명한다 함수와 메서드 : def문 다음의 docstring에서 모든 인수, 반환 값, 일어나는 예외, 다른 동작들을 문서화한다 def palindrome(word): """Return True if the given word is a palindrome.""" return worn == word[::-1.. 더보기
[Effective Python 복습] Chapter 5. 병행성과 병렬성 21. 키워드 전용 인수로 명료성을 강요하자 키워드 인수는 함수 호출의 의도를 더 명확하게 해준다 특히 불 플래그를 여러 개 받는 함수처럼 헷갈리기 쉬운 함수를 호출할 때 키워드 인수를 넘기게 하려면 키워드 전용 인수를 사용하자 파이썬3는 함수의 키워드 전용 인수 문법을 명시적으로 지원한다 리스트에 있는 * 기호는 위치 인수의 끝과 키워드 전용 인수의 시작을 기리킨다 def safe_division_c(number, diviser, *, ignore_overflow=False, ignore_zero_division=False): # ... safe_division_c(1, 10**500, True, False) # TypeError safe_division_c(1, 0, ignore_zero_divisi.. 더보기
Python - 문법 함수 | 생활코딩 강의 복습 | 프로그래밍 공부 * 이 포스팅은 생활코딩 강의를 들으며 내용을 정리한 것이며, 모든 내용은 https://opentutorials.org/ 에서 보실 수 있습니다.* 이번에 다룰 함수는 여러가지 기능이 있지만,장황한 코드를 정리정돈하는 수단이 그 기능 중 하나이다. 평균 함수를 구현해보자.def function():의 식으로 구현이 된다.def average(): 함수를 만들고,average() 으로 실행을 해주면, 평균이 구현이 된다. 입력 값은 수시로 바뀔 수 있다.따라서 조금 더 편하게 함수를 구현하기 위해, 입력 값을 같이 넣어줄 수 있다.def average(a,b,c): 10, 20, 30의 입력 값을 넣어주면출력 결과가 잘 나온다. 위에서 만드는 함수는 출력하는 일까지 담당하고 있었다.하지만 함수는 한 가지.. 더보기