Testen Sie Ihre Python-Kenntnisse im Spiel
Ich habe kürzlich eine sehr interessante Python-Spielfreigabe-Website im Internet gesehen. Es gibt insgesamt 33 Level, bei denen Sie Python-Kenntnisse verwenden müssen, um die Antwort zu finden, und dann das Problem lösen müssen nächste Ebene. Es testet die umfassende Beherrschung von Python. Einige Ebenen erfordern beispielsweise die Verwendung regulärer Ausdrücke, andere erfordern die Verwendung von Crawlern.
Wir lernen Python normalerweise in Kapitelreihenfolge, Paketen oder Modulen, und es ist leicht, es nach dem Lernen zu vergessen. Auf dieser Website können Sie Ihre Python-Kenntnisse umfassend testen und auf etwaige Mängel überprüfen.
Lassen Sie uns darüber sprechen, wie Sie diese Website nutzen.
Dies ist die Hauptseite der Website, nicht wahr? Sie existiert schon seit mehr als zehn Jahren. Aber unterschätzen Sie es nicht, nur weil es wie eine Antiquität aussieht.
Lass uns Spaß haben. Klicken Sie auf „Herausgefordert werden“, um die Herausforderung zu starten.
Stufe 0 ist die Aufwärmsitzung zum Aufwärmen:
Die Anforderung für diese Stufe besteht darin, den URL-Link zu ändern, und die Eingabeaufforderung ist ein mathematischer Ausdruck auf dem Computer: 2 hoch 38. Sie müssen also wahrscheinlich den Wert berechnen und dann die URL ändern, um zur nächsten Ebene zu gelangen.
Diese Stufe ist also ein Test grundlegender numerischer Operationen in Python. Wissen Sie, wie man rechnet?
Öffnen Sie das Python-Terminal und Sie können das Ergebnis mit einer Codezeile berechnen:
Ersetzen Sie die 0 im ursprünglichen Link durch 274877906944 und drücken Sie die Eingabetaste, um Betreten Sie die nächste Seite Level 1:
Das Spiel beginnt offiziell. Das Notizbuch im Bild zeigt drei Gruppen von Buchstaben, und das Muster ist leicht zu finden: Die Buchstaben vorne werden um zwei Stellen nach hinten verschoben, um zu den Buchstaben hinten zu werden.
Dann müssen Sie die folgende Eingabeaufforderungszeichenfolge gemäß dieser Regel entschlüsseln und eine Verschiebungsentschlüsselung durchführen, um die tatsächliche Satzbedeutung zu erhalten:
Diese Frage testet das Wissen im Zusammenhang mit der Zeichenfolgencodierung und for-Schleife, Code Die Implementierung ist wie folgt:
text = '''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.''' text_translate = '' for i in text: if str.isalpha(i): n = ord(i) if i >= 'y': n = ord(i) + 2 - 26 else: n = ord(i) + 2 text_translate += chr(n) else: text_translate += i print(text_translate)
Das Ergebnis ist:
i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans()is recommended. now apply on the url.
Der Autor ist natürlich sehr interessant. Es wird empfohlen, die Berechnung nicht durchzuführen string.maketrans(), um das Problem zu lösen, ist direkter. Die offizielle Methode bietet eine schlankere Methode:
import string l = string.lowercase t = string.maketrans(l, l[2:] + l[:2]) print (text.translate(t))
Ändern Sie dann die Karte in der URL und drücken Sie die Eingabetaste, um zu gelangen zweite Ebene:
Der Autor sagte weiter , dass der relevante Hinweis möglicherweise im Buch enthalten ist (das ist natürlich unmöglich) oder in der Quelle Code der Webseite. Klicken Sie dann mit der rechten Maustaste, um den Quellcode anzuzeigen, und scrollen Sie nach unten, um den grünen Bereich zu sehen. Tatsächlich ist das Problem gefunden:
Es bedeutet: Finden Sie die wenigsten Zeichen im Folgende Zeichenfolge Zeichen
untersuchte mehrere Wissenspunkte:
String zur Extraktion regulärer Ausdrücke
Listenanzahl
bedingte Anweisung
Was würdest du an deiner Stelle tun?
Lassen Sie uns einen Blick darauf werfen, zehn Codezeilen zur schnellen Implementierung:
import requests url = 'http://www.pythonchallenge.com/pc/def/ocr.html' res = requests.get(url).text text = re.findall('.*?<!--.*-->.*<!--(.*)-->',res,re.S) # list转为str便于遍历字符 str = ''.join(text) lst = [] key=[] #遍历字符 for i in str: #将字符存到list中 lst.append(i) #如果字符是唯一的,则添加进key if i not in key: key.append(i) # 将list列表中的字符出现字数统计出来 for items in key: print(items,lst.count(items))
Verwenden Sie zunächst Requests, um die Webseite anzufordern, verwenden Sie dann reguläre Ausdrücke, um die Zeichenfolge zu extrahieren, und verwenden Sie dann ein for Schleife, um die Anzahl der Vorkommen jedes Zeichens zu zählen.
% 6104 $ 6046 @ 6157 _ 6112 ^ 6030 # 6115 ) 6186 & 6043 ! 6079 + 6066 ] 6152 * 6034 } 6105 [ 6108 ( 6154 { 6046 e 1 q 1 u 1 a 1 l 1 i 1 t 1 y 1
Sie können sehen, dass die letzten paar Zeichen am wenigsten erscheinen, die zusammen „Gleichheit“ sind. Durch Ersetzen der URL-Zeichen können Sie die zweite Ebene bestehen und zur nächsten Ebene wechseln, um die Herausforderung fortzusetzen. Ist es nicht interessant?
Jedes nachfolgende Level erfordert den Einsatz relevanter Python-Fähigkeiten, um es zu lösen. Zum Beispiel Level 4:
Der Autor dieses Levels hat einen kleinen Streich gemacht. Sie müssen den Wert manuell in die URL eingeben und die Eingabetaste drücken. Glauben Sie, dass das das Ende ist? Es werden Ihnen nicht ständig scheinbar endlos neue Werte angezeigt, die Sie eingeben können.
所以,这一关肯定不能采取手动输入的方法闯关,自然要用到 Python 了。要实现自动填充修改 url 回车跳转到新 url,循环直到网页再也无法跳转为止这一功能。
如果是你,你会怎么做?
其实,一段简单的爬虫加正则就能搞定。思路很简单,把每次网页中的数值提取出来替换成新的 url 再请求网页,循环下去,代码实现如下:
import requests import re import os # 首页url resp = requests.get( 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345').text url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=' # 计数器 count = 0 while True: try: # 提取下一页动态数值 nextid = re.search('\d+', resp).group() count = count + 1 nextid = int(nextid) except: print('最后一个url为:%s' % nexturl) break # 获取下一页url nexturl = url + str(nextid) print('url %s:%s' % (count, nexturl)) # 重复请求 resp = requests.get(nexturl).text
输出结果如下:
可以看到,最终循环了 85 次找到了最后一个数字16044,输入到 url 中就闯关成功。
如果遇到不会做的题,可以在这里找到参考答案:
中参考文教程:
https://www.cnblogs.com/jimnox/archive/2009/12/08/tips-to-python-challenge.html
官方参考教程:
http://garethrees.org/2007/05/07/python-challenge/
Das obige ist der detaillierte Inhalt vonTesten Sie Ihre Python-Kenntnisse im Spiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Minio-Objektspeicherung: Hochleistungs-Bereitstellung im Rahmen von CentOS System Minio ist ein hochleistungsfähiges, verteiltes Objektspeichersystem, das auf der GO-Sprache entwickelt wurde und mit Amazons3 kompatibel ist. Es unterstützt eine Vielzahl von Kundensprachen, darunter Java, Python, JavaScript und Go. In diesem Artikel wird kurz die Installation und Kompatibilität von Minio zu CentOS -Systemen vorgestellt. CentOS -Versionskompatibilitätsminio wurde in mehreren CentOS -Versionen verifiziert, einschließlich, aber nicht beschränkt auf: CentOS7.9: Bietet einen vollständigen Installationshandbuch für die Clusterkonfiguration, die Umgebungsvorbereitung, die Einstellungen von Konfigurationsdateien, eine Festplattenpartitionierung und Mini

Pytorch Distributed Training on CentOS -System erfordert die folgenden Schritte: Pytorch -Installation: Die Prämisse ist, dass Python und PIP im CentOS -System installiert sind. Nehmen Sie abhängig von Ihrer CUDA -Version den entsprechenden Installationsbefehl von der offiziellen Pytorch -Website ab. Für CPU-Schulungen können Sie den folgenden Befehl verwenden: PipinstallTorChTorChVisionTorChaudio Wenn Sie GPU-Unterstützung benötigen, stellen Sie sicher, dass die entsprechende Version von CUDA und CUDNN installiert ist und die entsprechende Pytorch-Version für die Installation verwenden. Konfiguration der verteilten Umgebung: Verteiltes Training erfordert in der Regel mehrere Maschinen oder mehrere Maschinen-Mehrfach-GPUs. Ort

Bei der Installation von PyTorch am CentOS -System müssen Sie die entsprechende Version sorgfältig auswählen und die folgenden Schlüsselfaktoren berücksichtigen: 1. Kompatibilität der Systemumgebung: Betriebssystem: Es wird empfohlen, CentOS7 oder höher zu verwenden. CUDA und CUDNN: Pytorch -Version und CUDA -Version sind eng miteinander verbunden. Beispielsweise erfordert Pytorch1.9.0 CUDA11.1, während Pytorch2.0.1 CUDA11.3 erfordert. Die Cudnn -Version muss auch mit der CUDA -Version übereinstimmen. Bestimmen Sie vor der Auswahl der Pytorch -Version unbedingt, dass kompatible CUDA- und CUDNN -Versionen installiert wurden. Python -Version: Pytorch Official Branch

Die Installation von CentOS-Installationen erfordert die folgenden Schritte: Installieren von Abhängigkeiten wie Entwicklungstools, PCRE-Devel und OpenSSL-Devel. Laden Sie das Nginx -Quellcode -Paket herunter, entpacken Sie es, kompilieren Sie es und installieren Sie es und geben Sie den Installationspfad als/usr/local/nginx an. Erstellen Sie NGINX -Benutzer und Benutzergruppen und setzen Sie Berechtigungen. Ändern Sie die Konfigurationsdatei nginx.conf und konfigurieren Sie den Hörport und den Domänennamen/die IP -Adresse. Starten Sie den Nginx -Dienst. Häufige Fehler müssen beachtet werden, z. B. Abhängigkeitsprobleme, Portkonflikte und Konfigurationsdateifehler. Die Leistungsoptimierung muss entsprechend der spezifischen Situation angepasst werden, z. B. das Einschalten des Cache und die Anpassung der Anzahl der Arbeitsprozesse.
