python :: python과 C의 삼항연산

FILTER = ''.join ([(len (repr (chr (x))) == 3) and chr (x) or '.' \
    for x in range (256)])

for c in xrange (0, self.__len, 16):
    chars = src[c:c+16]
    self.__ascii.append (''.join(["%s" % (FILTER[ord (x)]) for x in chars]))


위 코드에서 첫 줄의 FILTER 를 구하는 코드가 삼항연산에 해당됩니다. 대괄호 사이의 코드를 보면,

A and B or C

구문을 볼 수 있습니다. 이것을 C 언어의 삼항연산과 비교해서 보면,

A ? B : C

가 되지요. 즉 A 가 참이면, B 를 아니면 C 를 연산하라는 의미입니다.

Similar Posts

  • C :: gcc 컴파일러에서 자료형의 크기는 얼마?

    C언어로 sizeof() 함수를 이용하여 구해봤습니다. 환경은 32 bit 입니다. 대체로 Visual C++의 자료형 크기와 동일한 값이 나옵니다. 다만, long double 형의 크기가 더 크게 나왔습니다. Visual C++에서는 double와 동일하게(실제로는 지원하지 않는거죠) 8 byte 이지만, Monodevelop에서는 12 byte 입니다. 터보 C가 10 byte 인데, 범위가 3.4*10-4932 ~ 1.1*104932 이라고 하네요. 우와! 그럼, 12 byte 이면? 시간…

  • 우분투에서 chown 명령어로 권한 주기

    얼마 전, Download 파티션을 ext3로 새로 포맷했습니다. vfat로 해서 써왔더니 다운로드 받은 파일의 이름이 종종 깨질 때가 있어서 말이죠. 그런데 문제가 생겼습니다. 이전에 했던 방법대로 fstab 파일을 편집했지요. 다만, 마운트는 되어도 제게 권한이 없는게 않겠습니까? 권한이 모조리 root로 가 있어서 읽기도 쓰기도 되지 않아 Download 용으로 사용하려는 제 발목을 붙잡는 겁니다. 이를 두고 이번에도 몇…

  • .htaccess, UTF-8을 지원하지 않는 서버에서

    이 블로그는 태터툴즈로 운영하는 블로그다. 태터툴즈는 http://www.tattertools.com에서 다운로드 받을 수 있는 설치형 블로그다. 네이버, 이글루스 같은 서비스형 블로그와 달리 자신의 계정에 설치한다. 그래서 백업은 물론이고 DB 관리도 자신이 직접 할 수 있다. 용량도 적어서 어떠한 계정에라도 트래픽만 허용된다면 부담없이 운영할 수 있다. 이런 설치형 블로그에는 워드프레스와 태터툴즈가 대중적이다. 워드프레스는 태터툴즈에 비해 크기가 작고 기능도 더…

  • 우분투에서 자동으로 파티션을 불러오자.

    아래는 “Ubuntu 8.10:Intrepid Ibex” 환경에서 작성한 글입니다. 다른 버전에서는 다르게 적용될 수 있습니다. 저는 여분의 HDD를 자료받기용으로 파티션을 주어 사용합니다. 윈도를 사용할 때 생긴 버릇인데, 바이러스에 의한 피해를 최소화 하기 위해서였습니다. 이 버릇은 리눅스(우분투)를 사용하면서도 계속 되었지요. 문제는 리눅스(우분투)에서는 FAT32 형식의 파티션은 자동으로 불러오도록(mount) 되어 있지 않다는 것입니다. 내려받을 폴더를 Download 파티션으로 지정해놓은 상태에서 매번…

  • DumpFromOEP.py for Immunity Debugger

    Windows XP에서 Immunity Debugger의 플러그인들이 충돌을 일으켜서 만들었던 스크립트입니다. OllyDump의 소스코드를 보면서 만들었습니다. 단순히 메모리를 덤프해서 PE 헤더를 고친 후 파일로 출력하는 게 전부입니다. PyCommand 디렉토리 아래에 스크립트 파일을 저장한 후, eip가 OEP에 있을 때 커맨드라인에서 다음과 같이 입력하면 실행이 됩니다. !dumpfromoep [a path of the output file] OEP까지 직접 찾아가야 하고 IAT도 수동으로 고쳐줘야…

  • C :: 1byte씩 메모리 읽기

    Shinnara 님이 알려주신 1byte씩 메모리를 읽는 방법입니다. 스택이나 정적메모리 영역 등에 이용할 수 있겠네요. unsigned char에 대해서는 거들떠 보지도 않았는데 이번 기회로 참 유용하다는 걸 알게되었습니다. ptr = (unsigned char *) &fNumber; 이 부분에 대해서는 지난 글에서 설명했었지요. 차이라고는 unsigned * 대신에 unsigned char *을 사용함으로써 4byte가 아닌 1byte씩 끊어 읽을 수 있다는 것입니다. 아래…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다