Python 19

Absolute path와 relative path의 차이점

Absolute path = 절대 경로 / import 하는 파일이나 경로에 상관없이 항상 경로가 동일하기 때문 └── my_app ├── main.py ├── package1 │ ├── module1.py │ └── module2.py └── package2 ├── __init__.py ├── module3.py ├── module4.py └── subpackage1 └── module5.py 위와 같은 프로젝트 이고 package1 과 2 있다. 그리고 package2는 subpackage 라는 중첩 package 가 있다. Absolute path를 이용해 import 하면 from package1 import module1 from package1.module2 import function 1 f..

Python 2022.07.07

__init__.py 의 역할

init.py 는 해당 디렉토리가 하나의 패키지의 일부임을 알려주는 역할을한다. init.py이 존재하지 않는다면 패키지의 일부인지 인식을 못하기 때문에 속성을 가지고 있지 않다는 에러가 발생 python3.3 버전부터는 init.py 파일이 없어도 패키지로 인식한다(PEP 420). 하지만 하위 버전 호환을 위해 init.py 파일을 생성하는 것이 안전한 방법이다. init을 통해 하는일 1. Import 할때 경로의 총 길이 줄여줌 2. Package에서 import 할 수 있는 변수/함수/클래스 제한 3. package가 import될때 꼭 먼저 실행되어야 하는 코드 삽입

Python 2022.07.07

파이썬은 sys 모듈의 위치를 어떻게 찾을 수 있을까?

sys 도 import 해야하는 모듈입니다. 파이썬은 sys 모듈의 위치를 어떻게 찾을 수 있을까요? sys 도 import 해야하는 모듈 이므로 sys 모듈을 import 해서 sys.modules 와 sys.path를 출력할수 있고 수정할수 있다. import sys print(sys.path)# list >>['/Users/jeonghyeonhwang/Desktop/study/algorith', '/Users/jeonghyeonhwang/Desktop/study/algorith', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_display', '/Library/Developer/CommandLineTools/Library/F..

Python 2022.07.06

sys.modules 과 sys.path 의 차이

sys.modules 와 sys.path의 차이점을 서술해 주세요. sys.modules 파이썬이 모듈이나 패키지를 찾기위해 가장 먼저 확인하는 곳 sys.modules 는 단순한 딕셔너리 이미 import 된 모듈과 패키지들을 저장하고잇다. 새로 import되는 모듈은 sys.modules에서 찾을수없다. sys.path 파이썬이 모듈이나 패키지를 찾기위해 가장 마지막으로 확인하는 곳 sys.path 는 리스트 형태 string 요소들을 가지고 있다. 새로 import되는 모듈은 sys.modules에서 찾을수없다. 정리 :파이썬은 import 하고자 하는 모듈과 패키지를 찾을 때에 먼저 sys.modules를 보고, 없으면 파이썬 built-in 모듈들을 확인 하고 마지막으로 sys.path에 지정되..

Python 2022.07.06

Function Parameters

1. 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유 default value parameter : 함수가 호출될때 파라미터에 인자를 받아 넘겨준다. non-default value parameter : 함수가 호출될때 파라미터에 인자를 받아 넘겨줄 수 도 있으며, 인자를 넘겨주지 않아도 keywordname=value 형식으로 선언되어 있기 때문에 지정한 value 를 넘겨줄 수 있다. 예제 아래의 예제와 같이 number라는 함수가있고 my 와 your를 print 해준다. 위의 5번째줄을 보면 my = '1234','567'이라는 non-default value parameter를 받게 되고 SyntaxE..

Python 2022.07.06

정규표현식

정규표현식 이란? - 정규 표현식(Regular Expressions)은 복잡한 문자열을 처리할때 사용하는 기법으로 - 파이썬고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용한다. - (정규표현식을 배우는것은 파이썬을 배우는 것과는 또다른 영역이다!) - 정규식 =정규 표현식 정규표현식의 필요이유 다음과 같은 문제가 있다. 주민등록 번호를 포함하고 있는 텍스트가 있다면 이 텍스트에 포함된 모든 주민등록번호의 뒷자리를 *문자로 변경해 보자 우선 정규식을 전혀 모른다면 아래의 순서로 프로그래밍 할것이다 전체 텍스트를 공백 문자로 나눈다 (split) 나뉜 단어가 주민등록 번호 형식인지를 조사 단어가 주민등록 번호 형식이라면 뒷자리를 *로 변환 나뉜단어를 다시 조립 data = ''' park 80090..

Python 2022.07.06

객체(Object)

프로그래밍 개발 방법 중에는 객체 지향 프로그래밍 (object oriented programming) 이라고 부르는 개념이 있다. 객체 지향 프로그래밍이란 프로그램이 어떻게 작동해야하는 지 모든 것을 하나하나 지시하는것 대신 모델을 만들어 그 모델이 어떤 역할을 가지고 어떻게 행동 해야 하는지 정의 하여 서로 알아서 상호 작용 을 할수있도록 만드는 것 그렇다면 객체(Object)란 속성과 행동을 모아놓은 것 이라고 보면 된다. 예를 들면 강아지(dog)라는 객체 를 모델링 해보자 속성**(properties)**은 색깔 , 나이, 분위기, 주인 의 속성이 있고 행동**(methods)**으로는 짓기 먹기 공주워오기 등이 있다. dog ------------ 색깔 나이 분위기 주인 짓기() 먹기(음식) ..

Python 2022.07.06

iterators

ioterators 는 값을 순차적으로 꺼내올수 있는 객체이다 기존에 우리는 리스트 안에서 값을 빼오기 위해 for 문을 이용했다. 만약 리스트안에 있는 값을 제곱 해서 반환 하는 코드를 보자 L = [1,2,3] #기존 for x in L: print(x**2,end=' ') 이런식으로 사용 했었다. 만약 여기서 L이 리스트라고 명시 되지 않고 변수명만 주어졌다고 한다면 우리는 과연 어떻게 L이 반복 가능한 객체인지 확인을 해봐야할까? 바로 dir 을 확인 하는것이다. 이런식으로 프린트를 찍어본다면 ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '..

Python 2022.07.06