1. EAFP VS LBYLEAFP - 'It's Easier to Ask Forgiveness than Permission' 의 줄임말 입니다. 허락보다 용서구하는 것이 쉽다.LBYL - 'Look Before You Leap'의 줄임말입니다. 도약하기전에 봐라. 라는 뜻입니다.LBYL 스타일은 어떤 것을 실행하기전에 에러가 날만한 요소들을 조건절로 검사를 하고 수행하는 스타일입니다.EAFP 스타일은 예외처리를 활용하여 검사를 수행하지 않고 일단 실행하고 예외처리를 진행하는 스타일입니다.파이썬은 EAFP 스타일을 권장합니다.PEP-0463 (이문서가 맞는지 모르겠으나.. 검색해본봐로는...)EAFP는 Python에서 표준이며, 철학은 예외에 의해 가능합니다.대신 오류 코드를 사용하는 예외가 없으면 오류..
빌트인된 모듈이나 추가로 pip로 설치한 모듈이나 import 로 많이 참조해서 사용하였다. 하지만 직접 필요한 부분을 모듈화 해서 참조해서 사용해보자 규모있는 프로젝트를 진행하다 보면 다수의 모듈이 필요하다. [네이밍룰] pep8 에 따르면 모듈 이름은 모두 소문자 이다. (bad) snake_case(bad) CamelCase(good) onlysmall calculator.pydef add(a, b): return a+b def sub(a, b): return a-b def division(a, b): return a/b def multiply(a, b): return a*b위의 계산기 모듈을 만들었다. 이것을 임포트 해서 사용해 보자. import calculator if __name__ == '..
[doctest] 고품질의 소프트웨어를 개발하는 한 가지 접근법은 개발되는 각 함수에 대한 테스트를 작성하고, 그것들을 개발 프로세스 중에 자주 실행하는 것입니다.doctest 모듈은 모듈을 훑어보고 프로그램의 독스트링들에 내장된 테스트들을 검사하는 도구를 제공합니다. 테스트 만들기는 평범한 호출을 그 결과와 함께 독스트링으로 복사해서 붙여넣기를 하는 수준으로 간단해집니다. 사용자에게 예제를 함께 제공해서 설명서를 개선하고, doctest 모듈이 설명서에서 코드가 여전히 사실인지 확인하도록 합니다.>>> print(average([21, 30, 70])) 의 결과값이 40.0 이 아니면 오류 메세지를 출력한다.결과값 40.0 은 맨 마지막줄에 와야 한다. >>> 뒤에 인풋에 대한 코드를 삽입할수 있다. ..
Presentation Assistant Plugin을 설치하여 사용하는 걸 추천! [Editing] Ctrl + Space Basic code completion (the name of any class,method or variable) Ctrl + Shift + Space Smart code completion (filters the list of methodsand variables by expected type) Ctrl + Shift + Enter Complete statement Ctrl + P 함수호출시 인수 정보 확인 (within method call arguments) Ctrl + Q 코드에 대한 문서창 팝업 Shift + F1 코드에 대한 문서 인터넷 브라우저로 팝업 Ctrl + m..
[비동기 프로그래밍: Async] 웹페이지를 불러오는 함수가 있다. 1000페이지를 불러오기 위해 시작하면 한 페이지 불러오고... 또, 한 페이지 불러오고... 또, 한페이지... 불러올 것이다.이보다 효율적으로 페이지를 불러오기 위해서는첫째, 1000페이지를 동시에 불러온다.둘째, 한 페이지를 로딩하면서 기다리는 동안 다른 페이지를 불러온다.두 가지 방식이 비슷해 보여도 일 처리하는 방식은 다르다. 1번은 멀티스레드 방식이고 2번은 비동기 프로그래밍 방식이다.이 두 개념의 차이를 이해해보자.한 회사원이 있다. 전화도 받아야 하고 결재 올려 승인을 받아야 하고 메일도 보내야 하고 고객과 만나 업무도 처리해야 한다.가끔 바쁠 때 "몸이 열 개면 좋겠다"라고 말한다. 멀티 스레드는 실제 몸이 열 개이다. ..
병렬 구조로 처리할 수 있는 경우에 multiprocessing 모듈을 이용해서 성능향상을 얻을 수 있다. 데이터의 양이나 처리할 자료에 따라 성능 향상이 전혀 없을 수도 있다. 아래 소수를 구하는 코드가 있다. 에레토스테네스는 병렬처리가 까다로우므로 아래 방법으로 해보겠다. import multiprocessing import time import math def is_prime(n): for i in range(2, int(math.sqrt(n))+1): if not n % i: return False return True def count_prime(n): return len([i for i in range(2, n + 1) if is_prime(i)]) if __name__ == "__main__..
euc-kr 인코딩으로 한글을 문제없이 쓸수 있다. decorator 로 예외 처리를 하였다. def handler(func): def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except FileNotFoundError as e: print(e) except Exception as e: print(e) return wrapper @handler def write(path, data, encoding='euc-kr'): with open(path, 'w', encoding=encoding) as f: f.writelines("\n".join([",".join(list(map(str, row))) for row in data])) @hand..
[왜 스타일 인가?] 스타일 가이드는 말 그대로 가이드일뿐이라고 하는 사람들이 있다.맞긴 맞다. 그런데 꼭 스타일대로 작성하는게 아니더라도 어느 스타일을 선택해야한다.스타일 = 일관성 이기 때문이다. 스타일이 없는 코드는 일관성이 없는 코드이며이는 가독성이 떨어지는 코드로 이어지고 흔히 얘기하는 코드 스멜이 된다. 협업을 많이 해본 사람이랑 일해보면 프로젝트의 코딩 스타일을 빠르게 알아내고 프로젝트에 완전히 녹아드는 코딩을 한다. 이외에도 코딩 스타일을 따르기 보다 자기만의 스타일을 가지는 것이 좋다고 하는 사람도 만나봤는데클린코드의 보이스카웃 룰(https://johngrib.github.io/wiki/Boy-Scout-Rule/)이 왜 생겼겠는가? 코드는 지금의 내가 아닌 다른사람(미래의 나를 포함)..
- Total
- Today
- Yesterday
- 이미지 비교
- gitignore
- chatbot
- Tistory
- virtualenv
- gitlab
- 파이썬 독학
- django
- wsgi
- 장고 플러스친구 자동응답
- 장고 카톡 자동응답
- 면접답변
- 면접정답
- 플러스친구 자동응답
- 모바일 스킨 적용
- django chatbot
- 파이썬
- 모바일 테마 적용
- pycrypto
- Python
- 파이썬 프로그래밍
- 파이썬 강좌
- 엑셀 비교
- 문과 코딩
- 파이썬 입문
- admin.py
- 문서 비교
- GIT
- 장고
- PuTTYGen
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |