Skip to content

Instantly share code, notes, and snippets.

@tkalve
Created December 22, 2019 09:20
Show Gist options
  • Save tkalve/2f5e121f1594a6a5c549ef8f92daf947 to your computer and use it in GitHub Desktop.
Save tkalve/2f5e121f1594a6a5c549ef8f92daf947 to your computer and use it in GitHub Desktop.
Løsning på kode24-kalenderluka for 22. desember 2019
# 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