Peak hell? What does that sound like? The page source links to banner.p, so let's have a look at it.
>>> from urllib.request import urlopen
>>> url = 'http://www.pythonchallenge.com/pc/def/banner.p'
>>> text = urlopen(url).read()
>>> text[:20]
b"(lp0\n(lp1\n(S' '\np2\nI"
This is a streamed encoding called
Pickle.
>>> import pickle
>>> data = pickle.loads(text)
>>> len(data)
23
>>> from pprint import pprint
>>> pprint(data[:5])
[[(' ', 95)],
[(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)],
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)],
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)],
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]]
This is numbers and types of characters to print on each row like a
Unix Banner.
>>> for row in data:
... print(''.join(pair[0] * pair[1] for pair in row))
...
##### #####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
### #### ### ### ##### ### ##### ### ### ####
### ## #### ####### ## ### #### ####### #### ####### ### ### ####
### ### ##### #### ### #### ##### #### ##### #### ### ### ####
### #### #### ### ### #### #### #### #### ### #### ####
### #### #### ### #### #### #### #### ### ### ####
#### #### #### ## ### #### #### #### #### #### ### ####
#### #### #### ########## #### #### #### #### ############## ####
#### #### #### ### #### #### #### #### #### #### ####
#### #### #### #### ### #### #### #### #### #### ####
### #### #### #### ### #### #### #### #### ### ####
### ## #### #### ### #### #### #### #### #### ### ## ####
### ## #### #### ########### #### #### #### #### ### ## ####
### ###### ##### ## #### ###### ########### ##### ### ######
>>>
No comments:
Post a Comment