Behandlar tupler, listor, for-loopar och sträng-skivning.
Med en tupel kan man lagra flera värden i en variabel.
>>> mintupel = ("Kalle","Lisa")
Man kan sedan komma åt värdena med hjälp av index. Det första elementet får index = 0, andra index = 1 o.s.v. upp till sista elementet som får index = antal_element-1.
>>> print mintupel[0] Kalle >>> print mintupel[1] Lisa
Tyvärr kan man inte ändra några värden i en tupel så därför finns det en annan typ av följd som kallas för lista som är mycket mer flexibel. För att skapa en lista använder man hakparenteser.
>>> enfinlista = ["Kalle","Lisa"] >>> print enfinlista[0] Kalle >>> print enfinlista[1] Lisa
Nyheten här är att man även kan ändra värden.
>>> enfinlista = ["Kalle","Lisa"] >>> enfinlista[0] = "Pelle" >>> print enfinlista[0] Pelle >>> print enfinlista[1] Lisa
Det finns även ett gäng metoder kopplade till listor. T.ex. append(value), sort(), remove(value) (se Kursboken s. 138 för en fullständig lista).
test = ["Kalle"] test.append("Lisa") test.append("Anna") test.remove("Kalle") test.sort()
I exemplet ovan skapas först en lista som bara innehåller strängen "Kalle", sen lägger vi till "Lisa" och "Anna". Sedan tar vi bort "Kalle" med remove-metoden. Till sist
sorterar vi listan i bokstavsordning. När koden kört klart kommer test alltså se ut såhär: ["Anna","Lisa"]
.
Med while-loopar så utför man någonting så länge som ett villkor är sant. Med for-loopar går man igenom varje element i en följd.
orden = ("Hej","på","dej") for ord in orden: print ord
Loopen i exemplet ovan körs alltså tre gånger och skriver ut varje element i tupeln. Man kan göra exakt samma sak med en lista:
orden = ["Hej","på","dej"] for ord in orden: print ord
Även strängar är följder och man kan alltså skriva såhär:
text = "Hej på dej" for bokstav in text: print bokstav
Koden ovan skriver ut varje bokstav i strängen "Hej på dej" på en egen rad.
Ofta när man programmerar vill man räkna upp tal. Då kan man med hjälp av funktionen range()
skapa en lista.
>>> range(10) [0,1,2,3,4,5,6,7,8,9]
Om du vill göra något med varje tal, t.ex. skriva ut det, kan du göra det med en for-loop som vanligt.
for i in range(10): print "tal:",i
Med index kan du även plocka ut ett tecken ur en sträng.
>>> text = "Kalle" >>> print text[3] l
Exemplet skriver ut ett "l". Men man kan även plocka ut flera tecken i rad:
>>> test = "vattenspridare" >>> print test[8:12] rida
Man kan även låta bli att ange startposition eller slutposition så får man en sträng som går från början eller hela vägen till slutet.
>>> text = "tavelsudd" >>> print text[5:] sudd >>> print text[:5] tavel >>> print text[:] tavelsudd >>> print "n"+text[1:5]+"l"+text[6:] navelludd
Rövarspråket byter ut varje konsonant i en text mot konsonanten + o + konsonanten. Gör ett program som frågar användaren om en mening och sedan skriver ut meningen på rövarspråket.
#coding: latin-1 VOKALER = ("A","O","U","Å","E","I","Y","Ä","Ö"," ") mening = raw_input("Mening: ") rovarmening = "" for i in range(len(mening)): if mening[i].upper() in VOKALER: rovarmening += mening[i] else: rovarmening += mening[i] + "o" + mening[i] print rovarmening
Mellanslag måste finnas med bland vokalerna för att annars räknas det som en konsonant så "hej på dej" blir "hohejoj o popå o dodejoj" istället för "hohejoj popå dodejoj". För att programmet ska fungera med andra specialtecken som punkter och frågetecken så måste även dessa läggas in i vokaler. Därför är det egentligen smartare att lägga in alla konsonanter istället för alla vokaler.