프로그래밍 605

PyGTK 릉 이용한 RPN 계산기

다음은 Pythob 2.7.* 에 PyGTK 를 설치하여 실행되는 RPN 계산기 소스이다. #!/usr/bin/env python # Filename: rpnCalc.py # 0,3 # # RPN Calculator using PyGTK # Modified from PyGTK/example/textview-basic.py import pygtk pygtk.require('2.0') import gtk class TextViewExample: def callback(self, widget, data=None): print "Hello again - %s was pressed" % data if data != None: self.textbuffer.insert(self.textbuffer.get_end_it..

Python 3.3.5 및 3.4.1 에 IPython 과 Matplotlib 설치하기

현재 Python 3.3 의 최신 릴리즈는 3.3.5 이고, Python 3.4 의 최신 릴리즈는 3.3.1 이다. 또한 IPython 의 최신 릴리즈는 2.1.0 이다. 여기서는 윈도우용 Python 3.3.5 를 설치한 후 IPython 2.1.0 을 설치하여 사용하는데 문제가 많아 그 한 해결법을 제시한다.'(윈도우용 Python 3.4.1 의 경우에는 IPython 2.1.0 이 무리 없이 잘 설치된다.) 이 글에서 IPython 을 포함하여 모든 Python 확장 모듈의 설치는 모두 Unofficial Windows Binaries for Python Extension Packages 의 것을 내려받아 설치하는 것으로 간주한다. 우선 Python 3.3.5 인터프리터를 실행해 본다. 프롬프트> ..

Python 버전 알아내기

Pytghon 스크립트로 버전을 알아내는 방법 중에 하나는 import sys sys.version_info 를 이용하는 것이다. * Pyhoin 3.3 의 경우 Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:19:30) [MSC v.1600 64 bit (AM D64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.version_info sys.version_info(major=3, minor=3, micro=3, releaselevel='final', serial=0) >>> sys.version_info > (2, 4..

cygwin 의 g++ 로 UTF-8 한글 처리하는 간단한 예제

Cygwin 에서는 printf 와 wprint 를 동시에 사용하는 경우, 컴파일은 성공하지만 실행하면 wprintf 가 제대로 동작하지 않는다. 그리고 wprint 나 swptinf 사용 시 스트링을 출력하기 위해서는 %s 대신 %ls 포맷을 사용해야 한다. Cygwin 의 경우 wchar_t 의 크기는 2바이트이다. C++ 언어에서는 스트링(문자열) 클래스인 string 이 준비되어 있지만, utf-8 스트링을 db위해서는 wstring 을 써야 한다. 또 표준 입출력 cin 과 cout 대신 wcin 과 wcout 을 써야 허며 이를 위해서는 헤더 파일 iostream 을 인클루드(포함)해야 하고 이름 공간 std 를 써야 한다. 또 C 언어 처럼 setlocale(LC_ALL,""); 도 해야 한..

프로그래밍/C++ 2014.04.13

cygwin 의 gcc 로 UTF-8 한글 처리하는 간단한 예제

Cygwin 에서는 printf 와 wprint 를 동시에 사용하는 경우, 컴파일은 성공하지만 실행하면 wprintf 가 제대로 동작하지 않는다. 그리고 wprint 나 swptinf 사용 시 스트링을 출력하기 위해서는 %s 대신 %ls 포맷을 사용해야 한다. Cygwin 의 경우 wchar_t 의 크기는 2바이트이다. #include #include #include #include int main(int argc, const char *argv[]) { wchar_t wt[100]; /// setlocale(LC_ALL,"kr_KR.UTF-8"); setlocale(LC_ALL,""); // printf("sizeof(wchar_t) = %d\n", sizeof(wchar_t)); // printf("..

프로그래밍/C 2014.04.13

cygwin/mingw 의 g++ 로 utf-8 한글 처리하기

다음은 utf-8 인코딩으로 저장한 C++ 소스이다. Cygwin의 g++ tkdyd tl, 만일 아래의 소스에서 std::setlocale(LC_ALL, "ko_KR.UTF-8"); 대신 std::locale::global (std::locale ("ko_KR.UTF-8")); 로 하면 캄핑ㄹ은 되지만 실행 시에 Segmentation fault (core dumped) 에러가 난다. * 소스 파일명: testLocale_003.cpp // Filename: testLocale_003.cpp // // Compile: g++ -std=c++11 -o testLocale_003 testLocale_003.cpp // or g++ -std=c++0x -o testLocale_003 testLocale_00..

프로그래밍/C++ 2014.04.10

cygwin/mingw 의 gcc 로 utf-8 한글 처리하기

우선 다음은 ms949 인코딩으로 저장한 C 소스이다. * 소스 파일명: hello.c #include #include int main() { printf("Hello, 안녕하세요?\n"); printf("strlen(\"Hello, 안녕하세요?\\n\") = %d\n", strlen("Hello, 안녕하세요?\n")); return 0; } * 컴파일 > gcc -o hello hello.c * 실행 > hello Hello, 안녕하세요? strlen("Hello, 안녕하세요?\n") = 19 다음은 utf-8 인코딩으로 저장한 C 소스이다. * 소스 파일명: hello2.c #include #include #include #include #define wstrlen wcslen int main() {..

프로그래밍/C 2014.04.02

koTeX 과 verbments 패키지를 이용하여 (한글 문자 포함된) 프로그램 소스를 문서에 표현하기

아래의 소스는 koTeX 2012 이상이면 컴파일되는 TeX 소스이다. TeXworks 에서 XeLaTeX 으로 컴파일하면 에러는 없자만 소스 리스팅 부분이 제대로 반영되지 않는다. 차라리 명령줄애서 --shell-escape 옵션을 주고 xelatex 명령으로 컴파일하는 것이 확실하다. \begin{pyglist}[language=python,encoding=utf8] 처럼 옵션 encoding=utf8 이 있어야 한글이 출력된다, 컴파일하기: 프롬프트> xelatex --shell-escape ex-verbments-01.tex * 파일명: ex-verbments-01.tex \documentclass{article} \usepackage{kotex} \usepackage{verbments} \beg..

프로그래밍/TeX 2014.03.20

koTeX 과 minted 패키지를 이용하여 (한글 문자 포함된) 프로그램 소스를 문서에 표현하기

아래의 소스는 koTeX 2012 이상이면 컴파일되는 TeX 소스이다. TeXworks 에서 XeLaTeX 으로 컴파일하면 -shell-escape 옵션이 필요하다는 에러 메시지가 뜬다. 컴파일하기: 프롬프트> xelatex --shell-escape ex-minted-01.tex * 파일명: ex-minted=01.tex \documentclass[12pt,a4paper]{article} \usepackage{kotex} \usepackage{hyperref} \usepackage{minted} \begin{document} % v\begin{minted}[ruby] \begin{minted}{ruby} =begin Usual operators(평범한 사칙연산자): + addition(덧셈) - sub..

프로그래밍/TeX 2014.03.20