Pythonチャレンジレベル5レイダース:ピーク地獄



Python Challenge Level 5 Raiders



Python Challenge最初5攻略本:地獄のピーク


タイトルアドレス
http://www.pythonchallenge.com/pc/def/peak.html


トピックコンテンツ

それを発音します




問題解決

この質問は、英語を母国語としない人にとってはトリッキーで難しいものです。



  • ページタイトルはpeak hell
  • 写真は山です、すなわちpeak
  • ページテキストのヒントpronounce it 、読みましょう

プットpeak hell読み続けて、発音が非常に似ていることを見つけてくださいPython組み込みモジュールpickle
同じように見え、Webページのソースコードを確認して、コメントを見つけます。

また、リマインダーpickleこのモジュールの情報。
もう1つの興味深い点は、HTMLがあることです。ウェブページの型破りなタグ、すなわち。
表示banner.pファイルが文字化けしていることが判明し、使用する必要があると推測されますpickleモジュールによって保存されたファイル。
以下のファイルをダウンロードして、ロードして印刷してください。

from urllib.request import urlretrieve import pickle url = 'http://www.pythonchallenge.com/pc/def/banner.p' urlretrieve(url, filename = 'level5.pkl') with open('level5.pkl', 'rb') as fp: result = pickle.load(fp) print(result)

印刷出力はネストされたリストを含むリストであり、最内層はタプルです。
最初の要素は次のようになります:[(' ', 95)]
2番目の要素は次のようになります:[(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)]
3番目の要素は次のようになります:[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
各要素の数を合計すると等しい95であることがわかりました、Lenovoこれはマトリックスの場合があります。数字は、前の1文字の繰り返し回数を表します。
また注意してくださいbannerそれ自体がバナーや写真を意味します。
したがって、プログラムを次のように変更し、周期的に印刷しますbanner.p内部のコンテンツ:



from urllib.request import urlretrieve import pickle url = 'http://www.pythonchallenge.com/pc/def/banner.p' urlretrieve(url, filename = 'level5.pkl') with open('level5.pkl', 'rb') as fp: result = pickle.load(fp) for i in result: for j in i: print(j[0] * j[1], end = '') print(' ')

channelと書かれたキャラクターの絵を手に入れましょう:

変更URLアドレス、次のレベルを入力してください:
http://www.pythonchallenge.com/pc/def/channel.html