일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- AdaGrad
- HTML
- 우분투
- 순전파
- PostgreSQL
- C언어
- 코딩
- flag
- 설치
- picoCTF
- CTF
- 파이썬
- 아파치
- 기울기
- 리뷰
- PHP
- PICO CTF
- 소프트맥스 함수
- 신경망 학습
- Apache2
- sgd
- 책
- Python Challenge
- 신경망
- FastAPI
- 역전파
- 오차역전파법
- 백준
- Python
- 딥러닝
- Today
- Total
Story of CowHacker
Python challenge_5번문제 본문
안녕하세요 CowHacker입니다.
pythonchallenge 5번째 문제를 풀어 볼 거다.
http://www.pythonchallenge.com/pc/def/peak.html
peak hell
www.pythonchallenge.com

흠... 저거 중국에 있는 피라미드 아닌가?

발음하다 라..

소스코드를 보니 banner.p와
밑 주석 처리된 문장이 눈에 띄었다.

난 아무 소리가 들리지 않았다.
그냥 peak hell이란 저 문구의 소리가 친숙하게 들리냐 라는 거 같은데
번역... 상태가.. 큼..

banner.p에 접속해 보겠다.

오호라 먼가 떴다.

어후.. 어지러워

저 복잡한 부분 파이썬 크롤링으로 가져올 거다.

여전히 복잡하다.
머 어쩌라는 거지
그 banner.p라는 녀석. p라는 확장자가 먼지 알아봐야 했다.


오 파이썬과 관련된 확장자다.
https://docs.python.org/3/library/pickle.html?highlight=pickle#module-pickle
pickle — Python object serialization — Python 3.10.2 documentation
pickle — Python object serialization Source code: Lib/pickle.py The pickle module implements binary protocols for serializing and de-serializing a Python object structure. “Pickling” is the process whereby a Python object hierarchy is converted into
docs.python.org
파이썬 공식문서 홈페이지를 봤다.
검색을 해봤더니
파이썬 모듈인 pickle이 있었다.

unpickle 데이터 만이 믿을 수 있다고, pickle 모듈은 보안적이지 않다고 주의를 주고 있다.

내려 보던 중 간단하게 쓸만한 예시를 봤다.

pickle은 bytes만 받나 보다.

코드를 싹 바꿨다.

여전히 똑같은 에러가 떴다.

하지만 loads가 아니라 load로 하니깐...

잘 나오는 걸 볼 수 있는데

둘이 차이점은 내가 봤을 때 load가 가공되지 않은 데이터를 줘도 출력해주는 반면
loads는 한번 가공된 데이터를 줘야 하는 느낌이다.


흠.. 무슨 뜻인가 가만 봤다.
첫 번째 공백은 95..
다음엔 14.. 그리고 공백이 아닌 # 5...
무슨 그림을 리스트로 해놓은 느낌이다..


channel이라고 대문작만 하게 떴다.
from urllib.request import urlopen # url의 데이터를 열어 가져오는 라이브러리다.
import pickle # 여러 자료형을 변환없이 그대로 파일에 저장하고 불러올 때 사용하는 라이브러리다.
#============================================================#
#============================================================#
url = urlopen('http://www.pythonchallenge.com/pc/def/banner.p') # 해당 url에 대한 데이터를 가져오는 구간이다.
test = pickle.load(url)
for _ in test:
print("".join([k * v for k, v in _)) # test에서 불러온 값을 v에 넣고 v에대한 딕셔너리 즉 ""옆의 숫자값을 곱해 출력한다.

5번 문제 풀기 성공이다.
다 섯번째 문제를 풀었으니 여
섯 번째 문제로 갈 수 있다. 이
번 문제에선 python의 pickle이라는 녀석을
째 끔 알게 됐다.
'공부 > Pythonchallenge' 카테고리의 다른 글
Python challenge_1번문제_Returns (2) | 2022.02.06 |
---|---|
Python challenge_6번문제 (2) | 2022.02.04 |
Python challenge_4번문제 (2) | 2022.01.20 |
Python challenge_3번문제 (2) | 2022.01.11 |
Python challenge_2번문제 (2) | 2021.09.12 |