본문 바로가기

Python Basic/혼공파

(14)
나머지 공부 [21/01/26 작성] Module 직접 작성한 모듈 import 하기 (__init__.py 파일이 있을 때와 없을 때). __init__.py 파이썬 패키지를 읽을 때, 어떤 처리를 수행 혹은 패키지 내부의 모듈들을 한꺼번에 가져오고 싶을 때 사용. 패키지를 읽어 들일 때, __init__.py를 가장 먼저 실행함. 따라서 관련된 초기화 처리 등을 할 수 있음. __init__.py 에서는 __all__이라는 이름의 리스트를 직접 생성하는데, 이 리스트에 지정한 모듈들이 from import * 를 할 때, 전부 읽어 들여짐. 파이썬 3.3 이전 버전에서는 __init__.py 파일이 무조건 있어야 패키지로 작동했지만 (PEP420), 이후 버전에는 없어도 폴더 내부에 파이썬 파일이 들어 있기만 하..
[혼공파] Chapter 08 클래스 는 개념 정리 는 개인적으로 새롭게 알게 된 점 8-1. 클래스의 기본 객체 지향 프로그래밍 (Object Oriented Programming) 객체를 우선으로 생각해서 프로그래밍 한다는 의미. 프로그래밍에서 필요한 데이터를 추상화시켜, 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 언어. 객체 (Object) & 추상화 (abstraction) 객체: real world의 대상(object)을 소프트웨어 세계에 구현할 대상. e.g. 사람이라는 현실의 객체를 소프트웨어 세계에 구현하였을 때, 소프트웨어 세계에 구현된 '사람'이 객체인 것. (책에서 정의한 바) 여러 가지 속성을 가질 수 있는 대상. 추가적으로, real world 대상을 소프트..
[혼공파] Chapter 07 모듈 는 개념 정리 는 개인적으로 새롭게 알게 된 점 7-1. 표준 모듈 파이썬은 모듈 (module) 기능을 활용해 코드를 분리하고 공유함. 모듈은 여러 변수와 함수를 가지고 있는 집합체 표준 모듈과 외부 모듈로 나뉨 표준 모듈: 파이썬에 기본적으로 내장되어 있는 모듈 외부 모듈: 다른 사람들이 만들어서 공개한 모듈 import 모듈 이름 from 모듈 이름 import 가져오고 싶은 변수 또는 함수 e.g. from math import *, math 모듈 내부의 모든 것을 가져오는 것 의미. 모든 것을 가져오면, 식별자 이름에서 충돌이 발생할 수 있기 때문에 from 구문을 사용할 때는 최대한 필요한 것들만 가져와서 사용하는 것이 좋음. import 모듈 as 사용하고 싶은 식별자 docs.python...
[혼공파] Chapter 06 예외 처리 는 개념 정리 는 개인적으로 새롭게 알게 된 점 6-1. 구문 오류와 예외 오류의 종류 프로그래밍 언어의 오류(error)에는 크게 두 가지 종류가 있음. 구문 오류 (syntax error): 프로그램 실행 전에 발생하는 오류 예외 (exception) 또는 런타임 오류 (runtime error): 프로그램 실행 중에 발생하는 오류 구문 오류 (syntax error) 괄호의 개수, 들여쓰기 문제 등으로 인해 프로그램이 실행되기도 전에 발생하는 오류 EOL: End Of Line 에 문제가 있다는 뜻. 예외 (exception) & 런타임 에러 (runtime error) 프로그램 실행 중에 발생하는 오류 예외 처리 예외를 해결하는 모든 것을 예외 처리 (exception handling) 라고 함...
[혼공파] Chapter 05 ③함수 고급 는 개념 정리 는 개인적으로 새롭게 알게 된 점 5-3. 함수 고급 튜플 람다 파일 처리 튜플 튜플(tuple)은 몇 가지 점을 제외하고는 리스트(list)와 거의 비슷함. 튜플과 리스트와의 차이 리스트는 [] 로 둘러싸지만, 튜플은 ()로 둘러쌈. 리스트는 그 값의 생성, 삭제, 수정이 가능하지만, 튜플은 그 값을 바꿀 수 없음. 튜플의 형태 t1 = () t2 = (1,) t3 = (1,2,3) t4 = 1,2,3 t5 = ('a', 'b', ('ab', 'cd')) 튜플의 특징 t2 = (1, )처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 함. t4 = 1,2,3 처럼 괄호() 를 생략해도 무방함. 튜플과 리스트는 비슷한 역할을 하지만, 프로그래밍을 할 때 튜플과 리스..
[혼공파] Chapter 05 ②함수의 활용 는 개념 정리 는 개인적으로 새롭게 알게 된 점 5-2. 함수의 활용 재귀 함수 재귀 함수란 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수 팩토리얼을 구하는 방법 반복문으로 팩토리얼 구하기 재귀 함수로 팩토리얼 구하기 1. 반복문으로 팩토리얼 구하기 2. 재귀 함수로 팩토리얼 구하기 재귀 함수의 문제 재귀 함수는 상황에 따라서 같은 것을 기하급수적으로 많이 반복함. e.g. 피보나치 수열 트리 내부에 있는 각각의 노드 값을 계산하려면, 덧셈을 한 번 씩 해야 함. 현재 코드의 재귀 함수는 한 번 구했던 값이라도 처음부터 다시 계산해야 함. 따라서 계산 횟수가 기하급수적으로 늘어남. 현재 문제는 같은 값을 구하는 연산을 반복하고 있기 때문이고, 따라서 같은 값을 한 번만 계산하도록 코드를..
[혼공파] Chapter 05 함수 ①함수 만들기 는 개념 정리 는 개인적으로 새롭게 알게 된 점 Chapter 4까지 자료, 조건문, 반복문에 대해서 살펴보았음. 이는 프로그래밍의 논리와 관련된 가장 핵심적인 부분. Chapter 5부터는 '프로그래밍을 어떻게 더 쉽게 만들 것인가'와 관련됨. 5-1. 함수 만들기 [용어 정리] 함수를 사용한다 = 함수를 호출한다. 매개변수: 함수를 호출할 때 괄호 내부에 넣는 여러가지 자료 매개변수는 함수를 생성할 때, 괄호 내부에 식별자를 입력해서 만듦. 리턴값: 함수를 호출해서 최종적으로 나오는 결과 매개변수와 관련된 TypeError 함수를 호출할 때는, 함수를 선언할 때와 같은 개수의 매개 변수를 입력해야 함. 함수 호출 시, 생성한 매개변수보다 매개변수를 적게 넣은 경우 TypeError: print_n_t..
[혼공파] Chapter 04 반복문 ④문자열, 리스트, 딕셔너리와 관련된 기본 함수 는 개념 정리 는 개인적으로 새롭게 알게 된 점 다루는 내용: reversed(), 제너레이터&이터레이터, 확장 슬라이싱, enumerate(), 리스트 내포 itmes() 함수 reversed() 리스트에서 요소의 순서를 뒤집고 싶을 때는 reversed() 함수 사용 reversed() 함수의 매개변수에 리스트를 넣으면 리스트를 뒤집을 수 있음. CODE # 리스트를 선언하고 뒤집음. list_a = [1,2,3,4,5] list_reversed = reversed(list_a) print('# reversed() 함수') print(list_reversed) print(list(list_reversed)) print() print('# reversed() 함수와 반복문') # 첫 번째 반복문 for..
[혼공파] Chapter 04 반복문 ③for 반복문과 while 반복문 는 개념 정리 는 개인적으로 새롭게 알게 된 점 3. 반복문과 While 반복문 범위 자료형 매개변수에 숫자를 한 개 넣는 방법 range(A) : 0부터 A-1 까지의 정수로 범위를 만듦 매개변수에 숫자를 두 개 넣는 방법 range(A,B) : A부터 B-1까지의 정수로 범위를 만듦 매개변수에 숫자를 세 개 넣는 방법 range(A,B,C) : A부터 B-1까지의 정수로 범위를 만드는데, 앞뒤의 숫자가 C만큼의 차이를 가짐. 파이썬의 모든 기능들은 범위를 지정할 때 뒤에 입력한 숫자를 포함하지 않음. 범위를 만들 때 매개변수 내부에 수식을 사용하는 경우도 있음. 마지막 숫자를 포함해야 한다는 것을 강조하고 싶을 때. e.g. 10을 반드시 포함해야 한다는 것을 강조하고 싶을 때 다음과 같이 작성하기도..
[혼공파] Chapter 04 반복문 ②딕셔너리 는 개념 정리 는 개인적으로 새롭게 알게 된 점 2. 딕셔너리 (Dictionary) 딕셔너리(disctionary) 정의 사전적 의미: 사전 파이썬에서의 딕셔너리: 자료를 저장할 수 있는 자료 딕셔너리: '키'를 기반으로 '값'을 저장하는 것 리스트: '인덱스'를 기반으로 '값'을 저장하는 것 dict_a = { "name": "어벤저스 엔드게임", "type": "히어로 무비" } 딕셔너리 선언과 접근 1. 딕셔너리 생성 (선언) 딕셔너리는 중괄호 {}로 선언 '키: 값' 형태를 쉼표 (,) 로 연결해서 만듦 키는 문자열, 숫자, 불 등으로 선언할 수 있고, 일반적으로는 문자열로 사용하는 경우가 많음. 변수 = { "키a": "값a", "키b": "값b", "키c": "값c" } 2. 딕셔너리 접근 ..