'파이썬'에 해당되는 글 3건
- 2011.07.01 [Python challenge Level13] - disproportional (xmlrpclib)
- 2011.06.29 [Python challenge Level12] – evil (dealing evil)
- 2010.07.30 ◎ 파이썬 설치
[ Problem ] - http://huge:file@www.pythonchallenge.com/pc/return/disproportional.html
♧ 타이틀은 'call him', 'phone that evil' 이란 힌트와 함께 전화기 그림이 보인다. 즉, 악마에게 전화를 걸어야 하는데 그 악마가 누구인지 어떻게 호출해야 될지 모른다.
▷ 그림의 숫자'5'에는 링크가 걸려 있는데 클릭해 들어가 보면 XML형식의 코드가 보인다.
▷ 이는 XML-RPC Fault 형식과 유사한데 XML-RPC란, 인코딩 형식은 XML을 채택하고, HTTP를 통한 간단하고 이식성 높은 원격 프로시저 호출 방법을 제공하는 RPC 프로토콜의 일종이다.
▷ 파이썬 2.2부터 XML-RPC가 표준 모듈(xmlrpclib)로 포함되어 있으므로 따로 설치할 필요는 없다. ▷ 주요 함수는 다음과 같다.
▷ 위의 주요 함수를 통하여 해당 서버(phonebook)의 프로시저에 대한 정보를 출력해보자. #encoding=utf8 from pprint import pprint import xmlrpclib # ① 해당 XML-RPC를 지원하는 phonebook 서버에 접속. url = 'http://www.pythonchallenge.com/pc/phonebook.php' phonebook = xmlrpclib.Server(url) # ② 서버가 어떠한 API 제공하는지 리스트 형태로 출력. pprint (phonebook.system.listMethods()) # ③ 'phone'에 대한 도움말 정보 얻기. print phonebook.system.methodHelp("phone") # ④ 'phone'에 대한 인수 목록 알아내기. print phonebook.system.methodSignature('phone')
▷ 위의 마지막 methodSignature('phone')의 결과로 얻어진 [['string', 'string']] 에서 처음 'string'은 프로시저의 리턴형이고 나머지는 입력 인수의 형이다. ▷ 즉, phone은 특정 이름을 string형으로 받아 string형으로 리턴 해주는 프로시저다.
▷ 악마는 누구인가! 이제 악마에게 전화를 거는 방법을 알았으니 그 악마가 누구 인지만 알면 된다. Level12에서의 기억을 상기 시켜보면 evil4.jpg 에는 빈 화면이 보이는데 이것을 편집기로 보면 'Bert is evil! go back!' 라는 메시지가 출력 되었다. 즉, Bert가 evil이다.
▷ Bert에게 전화를 걸어 보자. (※ 위 소스코드 마지막 줄에 추가) # ⑤ Bert에게 전화 걸기. print phonebook.phone('Bert')
|
[ Solution ] - http://huge:file@www.pythonchallenge.com/pcc/return/italy.html
(※ 문제에 대한 다양한 해결법은 링크 참조.)
'워게임(WarGame) > PythonChallenge' 카테고리의 다른 글
[Python challenge Level15] - uzi(whom?) (2) | 2011.11.21 |
---|---|
[Python challenge Level14] - italy(walk around) (0) | 2011.11.21 |
[Python challenge Level12] – evil (dealing evil) (0) | 2011.06.29 |
[Python challenge Level11] - 5808 (odd-even) (0) | 2011.06.28 |
[Python challenge Level10] - bull (개미수열) (0) | 2011.06.27 |
[ Problem ] - http://huge:file@www.pythonchallenge.com/pc/return/evil.html
♧ 카드 패를 5장씩 돌리고 있습니다. (타이틀은 dealing evil) ♧ 소스를 보면 evil1.jpg 링크가 걸려 있습니다. (이번 문제에만 숫자가 붙어 있습니다) ♧ 해당 그림의 패를 돌리는 모습을 연상하여 숫자를 증가 시켜 보면('evil2.jpg', 'evil3.jpg') 다음과 같은 그림 힌트가 주어 집니다.
♧ evil2.jpg를 보면 'not jpg-_.gfx' 메시지가 보입니다.
♧ 해당 타이틀과 그림의 힌트를 다시 상기시키며 다음과 같이 'evil2.gfx' 파일을 5개의 파일로 각각 한 Byte씩 나눠 저장 합니다. # encoding=utf8 from PIL import Image from cStringIO import StringIO # ① 해당 gfx 파일을 오픈. im_file = open("evil2.gfx", 'rb').read() # ② 해당 gfx파일을 각각 한 Byte씩 5개의 파일로 나눠서 저장. for i in range(5): priece = im_file[i::5] im = Image.open(StringIO(priece)) f = open(("%d.%s" % (i, im.format)), 'wb') f.write(priece) f.close()
♧ 'evil2.gfx'를 5분할 한 결과 입니다.
♧ 해당 그림의 단어를 연결해 보면 'disproportionality'에서 'ity'빼면 'disproportional'이 됩니다. |
[ Solution ] - http://huge:file@www.pythonchallenge.com/pcc/return/disproportional.html
(※ 문제에 대한 다양한 해결법은 링크 참조.)
'워게임(WarGame) > PythonChallenge' 카테고리의 다른 글
[Python challenge Level14] - italy(walk around) (0) | 2011.11.21 |
---|---|
[Python challenge Level13] - disproportional (xmlrpclib) (0) | 2011.07.01 |
[Python challenge Level11] - 5808 (odd-even) (0) | 2011.06.28 |
[Python challenge Level10] - bull (개미수열) (0) | 2011.06.27 |
[Python challenge Level9] - good (ImageDraw) (0) | 2011.06.23 |
- 공식 홈 (http://www.python.org) 다운로드.
- 설치 디렉토리를 묻는 설치 초기화면.(기본값으로 설치).
- 설치 구성 요소를 선택.(별 무리 없으면 모두 선택).
- 설치 완료.
- 파이썬 설치 요소들에 대한 간략한 설명
- IDLE(Python GUI) - 파이썬 표준 GUI 대화식 인터프리터.
- Module Docks – 원하는 모듈 검색 도구(파이썬 2.1 이상 지원)
- Python (Command Line) – 도스창에서 수행되는 파이썬 대화식 인터프리터.
- Python Manuals – HTML 파일 형식의 파이썬 온라인 문서 모음.
❀ Mac OS X
맥 OS X나 리눅스 계열에서는 대부분 Default로 설치 되어 있다.
다음과 같이 버전 확인을 하여 설치 유무를 확인 해 보자.
Devanix ~ $ python --version Python 2.7.10 |
'Programming > Python' 카테고리의 다른 글
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
---|---|
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
◎ 파이썬 기초문 (0) | 2010.07.30 |
◎ 변수명 및 예약어 (0) | 2010.07.30 |
◎ Editplus에서 파이썬 설정(함수패턴,출력패턴) (0) | 2010.05.08 |