7098 listor - del 2

Ibland blir det lättare om man kan gruppera flera variabler. Nedan följer ett exempel.

Kod följer nedan.

#Det som visas efter hashtag (#) nedan är det som
#skrivs ut av print

inköpslista = ["bröd", "smör", "ost"]
print(inköpslista)
#['bröd', 'smör', 'ost']

listans längd - len()

print("antal element i listan: ", len(inköpslista))
#antal element i listan:  3

lägg till element i listan - append()

inköpslista.append("fil")
print(inköpslista)
#['bröd', 'smör', 'ost', 'fil']

lägg till lista på slutet av listan - extend()

inköpslista.extend(["tomat", "gurka"])
print(inköpslista)
#['bröd', 'smör', 'ost', 'fil', 'tomat', 'gurka']

sätt in element på given plats - insert()

inköpslista.insert(1, "skorpor")
print(inköpslista)
#['bröd', 'skorpor', 'smör', 'ost', 'fil', 'tomat', 'gurka']

ta bort givet element - remove()

inköpslista.remove("fil")
print(inköpslista)
#['bröd', 'skorpor', 'smör', 'ost', 'tomat', 'gurka']

Överkurs nu: Om "fil" finns på flera ställen i listan tas bara den första förekomsten bort.

ta bort och returnera sista elementet - pop()

last = inköpslista.pop()
print("last removed: ", last)
#last removed:  gurka

print(inköpslista)
#['bröd', 'skorpor', 'smör', 'ost', 'tomat']

ta bort och returnera valfritt element - pop(0)

first = inköpslista.pop(0)
print("first removed: ", first)
#first removed:  bröd

print(inköpslista)
#['skorpor', 'smör', 'ost', 'tomat']

sortera - sort()

inköpslista.sort()
print("sorterad: ", inköpslista)
#sorterad:  ['ost', 'skorpor', 'smör', 'tomat']

omvänd ordning

inköpslista.reverse()
print("omvänd ordning: ", inköpslista)
#omvänd sortering:  ['tomat', 'smör', 'skorpor', 'ost']

ett elements index - index()

print("skorpor har index:", inköpslista.index('skorpor'))
#skorpor har index: 2

finns ett element i listan? - in

if 'skorpor' in inköpslista:
    print('skorpor på listan')
else:
    print('skorpor saknas på listan')

#skorpor på listan

finns ett element inte i listan? - not in

Används på samma vis som 'in' se exempel ovan.

Uppgifter

1 Rövarspråket

Skriv ett program där man kan mata in ett ord och få det översatt till rövarspråket. Ett exempel följer.

glad bli gogloladod

Konsonanter följs av o och konsonanten en gång till. Vokaler förblir som de är.

Tips! Text kan hanteras som en lista, se exempel nedan.

ord = "gul"
print(ord[1])
# utskriften blir
# u

2A Caesarchiffer

Skriv ett program som chiffrerar en text med Caesarchiffer.

I korthet byts a mot b och b mot c och z mot a. Varje bokstav i texten byts mot nästa tecken i alfabetet. Ett exempel följer

pyton blir qzupo

Om Caesarchiffer på Wikipedia

Använd funktioner.

Tips från :

>>> 'PYTON'.lower() 
'pyton'

>>> ord('a')
97

>>> ord('z')
122

>>> chr(97)
'a'

>>> chr(122)
'z'

Testa att programmet fungerar. Kryptera ett meddelande.

2B

Skriv sedan kod så att du kan dekryptera. Testa.

2C

Utöka programmet så att det kan skifta ett valbart antal steg. Med två steg byts a mot c.

2D

Skriv ett program som kan knäcker Caesarchiffer, det vill säga testar alla möjliga rullningar.

Kan du dekryptera:

 lwthni_lnqqfw_qtb_bjnlmy_utqdstrnfq_rzqynuqjx

se säkerhets-SM.

3 Fler chiffer eller krypteringar

Exempel på fler sätt att kryptera på följer nedan. Skriv ett program som kan kryptera och dekryptera samt knäcka kod.

Atbash