본문 바로가기

Engineering WIKI/Python51

Python3 vs Pypy3 평소에 알고리즘 문제를 풀면서 Python을 지원하는 언어를 선택할 때, Python3와 PyPy3가 대표적으로 있었다. 원래 알던 개념은 PyPy3가 Python3의 실행시 시간이 매우 오래 걸린다는 단점이 있어, 그것을 개선하고자 JIT컴파일 방식을 도입한 것이라고 알고 있었다. 그러면, PyPy3를 이용하는 것이 무조건 효율적인데, Python3도 지원하는 이유가 무엇일까 궁금해졌다. 또한 여러 자료들을 찾아보면서, 특정경우에는 메모리, 시간 모두 Python3로 선택하는 것이 우수할 경우가 있었고, 또 다른 경우에는 메모리는 Python3가 우세하지만 시간 상으로는 PyPy3가 우수한 경우도 있었다. 컴파일 언어vs 인터프리터 언어의 개념 비교해 보면 컴파일 언어 : 소스 코드를 기계어로 컴파일(.. 2022. 5. 25.
Python TDD unittest Python에 포함된 다양한 테스트를 자동화할 수 있는 기능이 포함되어 있는 표준 라이브러리 unittest에 포함된 주요 개념 TestCase : unittest 프레임 워크의 테스트 조직의 기본 단위 Fixture : 테스트함수의 전 또는 후에 실행 테스트가 실행되기 전에 테스트 환경이 예상 된 상태에 있는지 확인하는 데 사용 테스트 전에 데이터베이스 테이블을 만들거나 테스트 후에 사용한 리소스를 정리하는데 사용 assertion : unittest가 테스트가 통과하는지 또는 실패 하는지를 결정. bool test, 객체의 적합성, 적절한 예외 발생 등 다양한 점검을 할 수 있음 assertion이 실패하면 테스트 함수가 실패합니다. TDD (Test Driven Development.. 2022. 5. 23.
파이썬 상속 (Inheritance) Inheritance.py class Country: """Super Class""" name = '국가명' population = '인구' capital = '수도' def show(self): print('국가 클래스의 메소드입니다.') class Korea(Country): """Sub Class""" def __init__(self, name, population, capital): self.name = name self.population = population self.capital = capital def show_name(self): print('국가 이름은 : ', self.name) def show_population(self): print('국가 인구수는 :', self.populat.. 2022. 5. 23.
유사 딕셔너리 defaultdict() 활용법 defaultdict()는 딕셔너리를 만드는 dict클래스의 서브클래스이다. 작동하는 방식은 거의 동일한데, defaultdict()는 인자로 주어진 객체(default-factory)의 기본값을 딕셔너리값의 초깃값으로 지정할 수 있다. 숫자, 리스트, 셋등으로 초기화 할 수 있기때문에 여러 용도로 사용할 수 있다. 기본적인 작동방식을 살펴보면 from collections import defaultdict # 외부함수이기 때문에 import 해야한다. int_dict = defaultdict(int) print(int_dict) # defaultdict(, {}) # 디폴트값이 int인 딕셔너리 위와 같이 설정을 하면 값을 지정하지 않은 키는 그 값이 0으로 지정된다. int_dict['key1'] #.. 2022. 5. 19.
문자열 split() 과 split(" ") 차이 이 참에 두 함수의 차이가 무엇인지 알아보았습니다. string = "word1 word2 word3 word4 " 예를 들어 위와 같이 word1 다음공백 1개, word2 다음 공백 2개, word3 다음 공백 3개, word4 다음 공백 4개 이렇게 있는 문자열이 있다고 할때 split( )과 split(" ")의 결과는 다음과 같습니다. print(string.split()) > ['word1', 'word2', 'word3', 'word4'] print(string.split(" ")) > ['word1', 'word2', '', 'word3', '', '', 'word4', '', '', '', ''] 자세하게 풀어 보면 split( )은 공백이 1개이건 2개이건 n개이건 상관없이 무조건 1개.. 2022. 5. 19.
함수 주석 함수 주석(Function Annotations)은 함수의 매개변수와 반환값에 주석(Annotations)을 작성합니다. 함수에 명시적으로 주석을 작성하는 것이므로 실제 코드에 포함됩니다. 단, 주석이므로 강제성은 없어 무시하고 사용할 수 있습니다. 함수 주석 작성 def func(a: str, b: float = 3.5) -> int: return a + b value = func(3) print(value) # 6.5 콜론(:)을 사용해 매개변수에 할당되어야 하는 형식을 할당합니다. ->(화살표)를 사용해 반환값에 할당되어야 하는 형식을 할당합니다. 매개변수에 기본값을 할당하는 경우, 변수: 주석 = 기본값의 형태로 할당합니다. 매개변수에 할당된 형식을 맞추지 않아도 되며, 반환되는 값의 형식이 변환.. 2022. 5. 17.