Für ein bestimmtes Puzzle online musste ich (jeden Python verwenden) jeden Kleinbuchstaben, der von drei Großbuchstaben auf beiden Seiten umgeben ist, greifen. So sollten zum Beispiel in 'WExWQPoKLGnnNMOkPPOQ'
die Buchstaben ok
ausgedruckt werden. Trotz der Suche nach griff nach einer planlos Lösung selbst, eine spezifische Lösung von einem anderen Teilnehmer meiner Aufmerksamkeit: Eine Python-Puzzle-Forloop-Lösung sezieren
import string
word = ""
for i in range(len(code) - 8):
if [c for c in code[i:i+9] if c in string.lowercase] == [code[i], code[i+4], code[i+8]]:
word += code[i+4]
ich mich gefragt, ob jemand diesen Code für mich brechen könnte. Ich habe einige spezifische Fragen, sondern ein Überblick wäre toll zu:
- warum
code[i:i+9]
keinTypeError: Can't convert 'int' object to str implicitly
produzieren? - Was macht
string.lowercase
in diesem Fall? - warum nimmt
code[i:i+9]
neun Zeichen anstelle von sieben (sechs Großbuchstaben und die Kleinbuchstaben in der Mitte)? - warum prüfen, ob
code[i+8]
ergibt wahr wenn[i+4]
(der Kleinbuchstabe, der das Puzzle der Anforderung erfüllt) ist 4 Leerzeichen auf der linken Seite, vor allem da nur drei Zeichen rechts oder links von der 'richtigen' Buchstaben relevant sind?
Das Rätsel selbst sind hier zu finden: http://www.pythonchallenge.com/pc/def/equality.html (den Quellcode prüfen)
wow das ist eine gespenstische Puzzle – thesonyman101
Warum der Ausgang für Ihr Beispiel 'ist OK' statt 'K '? –
Wegen menschlichem Fehler, jetzt behoben! –