【クリアランス] Pythonのチャレンジコードとレイダース(0-7)

はじめに:

最近、私は思考とクリアランスレイダースのゲームである障壁を介して、Pythonのブレークについてゲームを見つけました

当初位置:http://www.pythonchallenge.com/pc/def/0.html

0オフ

トピック分析

ヒントヒントは、URLアドレスを変更しようとすることです教えて図は、2 ^ 38で、アドレスが投機の結果です。

知識を調べ

  • これは始まりに過ぎない、我々はサイトを通過するだけでなく、int型のpythonでオーバーフローを決して学ばない方法を示唆、自動拡張するためのメカニズムがあります。

コードと結果

print(2**38)

出力:274877906944

次のレベル:http://www.pythonchallenge.com/pc/def/274877906944.html

第一オフ

トピック分析

あるいは文字を指摘し、K、M、E 2は、バックアルファベットから移動されます。それはシーザー暗号であることを知っているだろう学びました。

当初、私はオンラインハックサイトを使用しています。休憩の後、それが使用string.maketrans()最初maketransとのマッピングテーブルを作成し、解決して、機能を翻訳するために使用することができました

知識を調べ

  • 文字列ライブラリを含む文字列処理、

もちろん、あなたが文字列ではなく、使用することはでき[chr(i) for i in range(97,122)]手紙をAZ生成します。

コードと結果

import string
src = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr\'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.'

for i in range(1,26):
    mapping = ''.maketrans(string.ascii_lowercase,string.ascii_lowercase[i:]+string.ascii_lowercase[:i])
    print(src.translate(mapping))

输出:私はあなたが手でそれを翻訳didntの願っています。厥どのコンピュータがためのものです。手でそれをやってすることは非効率的であり、このテキストは限りある理由です。string.maketrans()を使用することをお勧めします。今のURLに適用されます。

MAP-> OCRである。この手段
次のレベル:http://www.pythonchallenge.com/pc/def/ocr.html

2オフ

トピック分析

情報は左下ことをノートには、どのようにオフの公式な答えをチェックアウトする方法を伝えることです。

赤のプロンプトテキストをよると、情報へのアクセス:本の中で特定の文字があってもよいページのソース(Webページのソースコード)内で発生することがあり

F12は、ソースコードを表示するために、あなたは身体>フォント>フォント内の情報を参照してください見ることができます

データクレンジングを行うために、ある以下の混乱にまれな文字を見つけます

ファイル「SRC / ocr.txt」にコピーされた内容をきれいにする必要性が、私はこれが相対パスで、あなたは簡単に長い間、彼はそれを開くことができるようとして、設定することができます

知識を調べ

  • 再ライブラリを含んだ単純なデータクレンジング、

コードと結果

import re

with open('src/ocr.txt','r') as f:
    s = f.read()
rs = re.findall(r'[a-zA-Z0-9]+',s)
print(''.join(rs))

出力:平等

次のレベル:http://www.pythonchallenge.com/pc/def/equality.html

3オフ

トピック分析

ビューのソースコードへのF12、body>のフォントを参照してください。

知識を調べ

  • 前の質問に似たシンプルなデータクレンジングは、再ライブラリを必要とします
  • 注意ヒント、小文字の手紙、両側に3つの大文字の正確存在は、それが唯一の中間の小文字を取って、XXXXXXXXXフォームです。

また、要求をクロールソースのWebを使用することができます。私は「SRC / equality.txt」内に保存されています

コードと結果

import re
with open('src/equality.txt','r') as f:
    s = f.read()
rs = re.findall(r'[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]',s,re.S)
print(''.join(rs))

出力:LinkedListの

次のレベル:http://www.pythonchallenge.com/pc/def/linkedlist.html

4オフ

トピック分析

  • 単純なテキストページ、linkedlist.phpは、URLのジャンプに入るのが自然です

  • F12のページタイトルがある:チェーンをたどる、また、400回urllibはヘルプに、そしておそらくサイクルへの私たちのプロンプトのリンク開くには、以下の不審なリンクを発見したことがあります。番号が表示され、そのような相互関連のチェーンなどを、私がリクエストを使用私たちは決意をしないようにクロール、Webページは、シンプルで唯一の番号でなければなりません

知識を調べ

  • 要求または他のクロールライブラリは、再

コードと結果

import requests,re

def get_src(url):
    respon = requests.get(url)
    if respon.status_code == 200:
        return re.findall(r'\d+',str(respon.content))[0]
     
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
add = '12345'
count = 0
for i in range(400):
    count += 1
    add = get_src(url+add)
    print(f'{count}:{add}',end = ' ')

例外の後、私は修正するために追加することができますので、。

出力:
部門16044は異常:.はい2で割ると続けるだろう。

82683处异常:あなたがここにmisleadedしてきました。前のチェックに移動します。

82682处异常:多分テキスト内の数値が誤解を招きます。一例としては、次の何のため82683.ルックだけで、次は何も63579ではありません

異常66831:peak.htmlは、実際には、次のレベルであります

次のレベル:http://www.pythonchallenge.com/pc/def/peak.html

レベル5

トピック分析

  • 、それを発音まっすぐターンそれを読んで、F12が見つかりました:

不審な、オープンbanner.p

Baiduはピクルスモジュール--pythonオブジェクトのシリアル化を使用することが判明学んだ後、文字化け怖がっ
ファイルの接尾辞保存.P

报错:TypeError例外:バイトのようなオブジェクトが必要とされる、ではない「STR」

説明:現在の操作がバイト列オブジェクト型の列があり、この文字列オブジェクトに追随するのでタイプSTR型バイト

ソリューション:オープン(ファイルは、「RB」)
pickle.load(ファイル)は、2のリストをデコードすることができます

本当に幽霊、私はこれは文字パターンであるとは思いませんでした始まりです。

最後に来る:リストが(文字、番号)、タプルで、データを分析qwqが解決チャンネルに来た後、答えを得るのは簡単です

知識を調べ

  • ピクルスのpythonライブラリ

コードと結果

import pickle

with open('src/banner.p','rb') as f: 
    data = pickle.load(f)

s = ''
for i in data:
    for j in i:
        s += j[0]*j[1]
    s+='\n'
print(s)

出力:

次のレベル:http://www.pythonchallenge.com/pc/def/channel.html

レベル6

トピック分析

  • ねえ、賃金は時々この計画は、金持ちをクラックされます、があります。
  • F12ソースを表示ディスカバリー

    zipファイルの存在である、ファイルをダウンロードしてください。
    私は最初の2つのステージは、zipファイルを使用していない後のことでした。

  • ノートは= _ =#、エキサイティングなアクションの波の後、私はあなたがコメントZIPファイルモジュールz.getinfo(「90052.txt」)でコメントを得ることができます知っている圧縮ファイルを収集する必要があります。

最後にコレクトノート、コーディングの問題に注意を払う、オープンのみR / W、

知識を調べ

  • 文書処理、zizpfileライブラリー

コードと結果

import zipfile,re

z = zipfile.ZipFile('src/channel.zip')

val = '90052'
count = 0
s = []
try:
    while True:
        count += 1
        print(f'{count}:{val}')
        file = f'{val}.txt'
        with z.open(file,'r') as f:
            s.append(z.getinfo(file).comment)
            text = str(f.read(), encoding='UTF-8')
        val = re.findall(r'\d+',text)[-1]
except:
    s.append(z.getinfo(f'{val}.txt').comment)
    print(val)
    d = ''
    for i in s:
        d += str(i,encoding = 'utf-8')

    print(d)

出力:

次のレベル:http://www.pythonchallenge.com/pc/def/hockey.html

7オフ

トピック分析

  • 私は本当に何この意味、F12のソースコード、要求のリソースではなく、情報を理解していません。最後に、後に慎重にハッハッハ、これらの言葉を読みました。TMの酸素酸素は、見た目の空気を説明するために余儀なくされました。

知識を調べ

  • 脳の洞?ゴースト

    コードと結果

出力:酸素

次のレベル:http://www.pythonchallenge.com/pc/def/oxygen.html

そして、多くの、多くのレベル、後続の更新があります。

おすすめ

転載: www.cnblogs.com/yanshanbei/p/12470787.html