Pierwsze zadanie
adres: http://www.pythonchallenge.com/pc/def/map.html
tytuł strony: What about making trans?
zadanie: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.
podpowiedź: everybody thinks twice before solving this.
rozwiązanie: K -> M, O -> Q, E -> G. Brzmi jak szyfr, gdzie zamieniamy jedną literę na drugą. Odległość K od M to 2 (K->L->M), taka sama odległość jest między O i Q, i E i G. Jaką funkcję pythona można wykorzystać do tego żeby przerobić jeden słownik na drugi? Skorzystajmy z podpowiedzi z tytułu strony i użyjmy metody string.maketrans.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import string | |
from numpy import roll | |
letters = string.lowercase | |
transition = ''.join(roll(list(letters), -2)) | |
trans = string.maketrans(letters, transition) | |
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." | |
print text.translate(trans) |
w url jest słowo: map
adres kolejnej zagadki: http://www.pythonchallenge.com/pc/def/ocr.html