콘텐츠로 건너뛰기
Home » python » Page 19

python

마크 다운을 PDF 문서로 변환하기

마크 다운을 HTML 문서로 변환하고, 다시 HTML 문서를 PDF로 변환하는 과정을 거치면 PDF 파일을 얻을 수 있다. HTML 파일을 PDF로 만드는 데는 파이썬으로 제작된 xhtml2pdf라는 패키지가 있긴 하지만 동작이 좀 불안정하거나 한글이 제대로 렌더링 되지 않는 (한글을 제대로 랜더링하는 방법은 있는데, 이 경우 CSS가 제대로 적용되지 않는다.) 등의 문제가 있어서 웹킷 엔진으로 렌더링하는 것과 같은 결과를 얻을 수 있는 PhantomJS를 사용하기로 결정했다.
더 보기 »마크 다운을 PDF 문서로 변환하기

오일러 프로젝트 31

영국의 화폐 단위는 파운드(£)와 펜스(p)이고, 동전의 종류는 아래와 같습니다.

1p, 2p, 5p, 10p, 20p, 50p, £1 (100p), £2 (200p)

이 동전들을 가지고 2파운드를 만드는 방법들은 다양할 것입니다. 예를 하나 들면 이렇습니다.

1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p

2파운드를 만드는 서로 다른 방법은 모두 몇 가지나 있습니까?

https://euler.synap.co.kr/problem=31
더 보기 »오일러 프로젝트 31

python regex cheatsheet

Cheatsheet for python regex

Regex module

re 모듈이 정규식을 지원한다.

match

re.match() 함수는 주어진 패턴을 문자열의 시작지점부터 적용하여 매칭되는 결과가 있으면 match 객체를, 그렇지 않은 경우 None을 리턴한다.

> re.match(r'\d', 'a1c2')
==> None
> re.match(r'a', 'a1c2')
<_sre.SRE_Match object at 0x028543A0>

더 보기 »python regex cheatsheet

파이썬 포매팅 함수

파이썬에서는 C와 유사한 포맷팅 문자열을 사용하는 방법이 있는데, 이와 별개로 문자열 객체의 .format() 메소드를 사용하여 포맷팅된 문자열을 생성하는 방법이 있다. 이 때 사용되는 포맷팅 규격은 조금 다른데, 생각보다 간단하고 훨씬 편리할 수 있으니 자주 애용해서 몸에 익히도록 하자. 문법 포맷팅 함수는 다음과 같이 사용한다. >>> "score:{0}, wins:{1}".format(3, 1) 'score:3, wins:1' %타입과 달리 중괄호에 들어간 숫자를 사용해서 포맷팅할 값들을 쓸 수 있다. 값은 인덱스 번호로 쓰여지기 때문에 하나의 값을 여러 번 사용하는 것도 가능하다. >>> "{0} {0} {0}".format(123) '123 123 123'… 더 보기 »파이썬 포매팅 함수

파이썬에서 파일 복사

폴더마다 같은 종류의 다른 사이즈의 아이콘들이 들어 있는데 이중 48X48 크기의 아이콘들 중 좀 쓸만한 것들을 뽑아서 다른 폴더에 모으려고 했는데, 양이 너무 많았다. 차라리 그 크기의 아이콘들만 모두 모아서 한 곳에 모아두고 보는 게 좋겠다 싶었다.
파이썬은 이럴때 쓰라고 있는 겁니다. 내가 쓰고자 하는 파일들은 모두~”48.png”로 끝나는 파일이라 이 파일들만 복사하면 된다. 특이하게 os 모듈이 아니라 shutil 모듈에 파일 복사 기능이 들어있더라.
더 보기 »파이썬에서 파일 복사

파일에서 한줄씩 읽어 들이기 – Objective-C

파이썬에서는 텍스트 파일을 가리키는 파일 객체는 파일 내용의 각 라인에 대한 이터레이터처럼 작동한다. 따라서 별다른 노력을 들이지 않고 for … in 구문을 통해서 텍스트 파일의 각 라인을 읽어서 처리하는 것이 가능하다. 이 기능의 멋진 점은 파일 객체가 느긋하게 동작하기 때문에 각 라인이 필요한 시점에 한 라인씩 읽어들인다는 것인데, 따라서 각 라인의 길이가 적절하다면 파일의 크기가 아무리 크더라도 안전하게 읽어들일 수 있다는 것이다. Objective-C에서 텍스트 파일은 보통 NSString의 stringWithContentOfFile: 메소드를 사용한다. 이 메소드의 문제는 파일을 한 번에 읽어들인 다는 점이다. 따라서… 더 보기 »파일에서 한줄씩 읽어 들이기 – Objective-C

인자를 받는 모양의 데코레이터 작성법

flask로 간단한 서버를 만드는 예제를 보면 좀 특이한 형태의 데코레이터 패턴을 발견할 수 있다. 바로 @app.route('/path')와 같은 모양의 인자를 받아 함수를 실행한 모양의 데코레이터가 그것이다. 흔하게 쓰이는 데코레이터 패턴이라면 @app.route 와 같이 함수나 클래스의 이름만 써서 사용하는데, 이러한 함수를 실행하는 꼴로 사용할 수 있을까? 물론 그렇게 만들 수 있으니까 쓰고 있을 것이다. 그래서 이런 모양의 데코레이터를 어떻게 만들 수 있을지에 대해 생각해 보았다.
더 보기 »인자를 받는 모양의 데코레이터 작성법

재귀호출과 피보나치 수열 탐구

재귀호출은 함수가 그 내부에서 자신을 다시 호출하는 것이다. 이는 언뜻 이상하게 보일 수 있고, 경우에 따라서는 의도치 않은 동작을 하게 할 수 있어서 일반적으로는 지양되는 방법이기는 하나, 대신에 코드가 짧아질 수 있고 실행 로직 자체가 어느 정도 제한된 경우라면 충분히 사용할 수 있다. 특히 하스켈과 같은 함수형 언어에서는 반복문을 돌리는 로직이 없기 때문에 재귀호출을 하는 함수를 자주 사용하게 된다. 더 보기 »재귀호출과 피보나치 수열 탐구

[Python] SQLite3 DB의 테이블 칼럼 이름 알아내기

테이블의 칼럼 이름을 기억하기 힘든 경우에는  CREATE TABLE 명령을 따로 복사해서 보관하거나,  아예 종이에 출력해 두기도 하는데 만약 내가 만든 테이블이 아닌 경우에는 SQLite3 쉘을 실행해서 .schema 명령으로 테이블 스키마를 확인해야 한다. (사실 이것도 상당히 바람직한 방법인데, 윈도 시스템에서 이 작업을 할 수 있는 방법에 대해서는 조만간 다시 글을 하나 쓸 생각이다.)더 보기 »[Python] SQLite3 DB의 테이블 칼럼 이름 알아내기