Created
December 22, 2019 09:20
-
-
Save tkalve/2f5e121f1594a6a5c549ef8f92daf947 to your computer and use it in GitHub Desktop.
Løsning på kode24-kalenderluka for 22. desember 2019
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
# Originalteksten: | |
# Her er alle bokstavene flyttet X steg i alfabetet. | |
stokkaseg = 'NKC FKT RTVCNIJA, MXFKP HHL CC FKMAOD XÆUEUR. ICYØB PCSÅ MUUN TKJ OD TØ ROOAD, ZF OÅØØUYGHÅ NCÆ LMQ NHP C IPKVO: ZSVHBXITB' | |
# Alfabetet, slik vi lærte det på skolen på åttitallet før emojiene | |
# ble tatt inn. | |
alfabet = list('ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ') | |
# Flyttetall er et tall for hver bokstav i stokkaseg-teksten | |
# Det forteller hvor mange steg i alfabetet vi skal flytte frem eller | |
# tilbake for å komme til rett bokstav. | |
flyttetallene = '-6,-6,6,0,-2,-2,-6,0,-6,1,-4,6,-8,-8,1,-11,0,0,-2,-9,-2,-6,-2,0,-2,-8,6,0,1,-11,0,1,-10,1,-11,-4,1,0,-5,-7,-3,-4,-10,1,0,0,-3,-4,-7,-9,-11,0,-4,6,1,-9,0,-6,-3,7,6,0,-10,-6,-3,0,-2,-4,0,-6,1,0,1,1,-6,-11,1,0,0,-11,1,0,1,1,-9,-9,-6,-7,-3,-3,-9,0,-8,-3,-9,0,-8,-8,-10,0,6,1,-4,0,-3,0,-2,-4,-2,-3,-10,0,0,-7,-3,-4,-3,-11,-4,-4,-2,-11'.split(',') | |
# Vi lopper gjennom alle bokstav-ene i stokkaseg-teksten | |
# og tar like gjerne med oss et løpenummer for å finne rett flyttetall | |
for nummer, bokstav in enumerate(stokkaseg, start=0): | |
try: | |
# Først må vi finne ut hvor i alfabetet bokstav er | |
bokstavplassering = alfabet.index(bokstav) | |
# Så finner vi flyttetallet vi skal bruke (og gjør det fra str til int) | |
flyttetall = int(flyttetallene[nummer]) | |
# Så legger vi til flyttetallet som hører til denne bokstaven | |
ny_bokstavplassering = bokstavplassering+flyttetall | |
# Ny bokstavplassering kan være større enn lengden på alfabetet | |
# eller mindre enn 0 | |
# Derfor bruker vi % som er modulus-operatoren for å wrappe rundt | |
# alfabetlengden og skriver ut bokstaven som er rett sted i alfabetet | |
print (alfabet[ny_bokstavplassering % len(alfabet)], end = '') | |
# Vi hadde en "try" på toppen der, denne her gjør at dersom vi ikke får til | |
# noe av det inni "try"-bokka, men det vi gjør sender en eller annen Error | |
# exception, så gjør vi det i "except"-blokka | |
# Det kommer en ValueError alle tegn som ikke er i alfabetet, f.eks | |
# mellomrom, komma og kolon som den ikke finner med | |
# "bokstavplassering = alfabet.index(bokstav)" | |
# Da bare skriver vi ut tegnet i stedet | |
except ValueError: | |
print (bokstav, end = '') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment