proj2 Flashcards

1
Q

Redogör för pythons namnkonvention

A

Variabler är substantiv, funktioner är verb, booleans börjar på is_, bara små bokstäver, ord separeras av underscore _

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Var i minnet lagras listor och andra objekt? När tas de bort?

A

Listan lagras i Objects, i heapen alltså. The heap är en del av minnet och är gemensam för hela programmet.
Listans variabelvärde är referensen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad är skillnaden mellan listindex och listelement?

A

Listindex menar platserna i listan medan, listelement är värdena som finns i listan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är en referens?

A

En referens/pekare är en address till minnet, det är ett variabelvärde. En lista kan ha en pointer till vad listan innehåller från framen till Object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad är skillnaden mellan alias och klon? Varför vill man ibland ha alias och ibland ha klon? Varför uppstår ibland alias när man använder en lista som ett argument i ett funktionsanrop? Hur gör man ett alias resp. en klon av en lista? Vad är likheter och skillnader mellan a = a + [b] och a.append(b)

A

Skillnad mellan alias och klon, med alias menas att variabler delar ett och samma objekt, variablerna som delar detta objekt sägs vara alias. Variablerna refererar till samma sak.
Om variablerna hade innehållt olika referenser så sägs de vara kloner, även fast objekten är likadana så är detta en klon då referensen inte går till exakt samma sak.

När du skickar en lista som ett argument till en funktion skickas egentligen en referens till listan och inte en kopia av listan. Det innebär att om du ändrar listan inne i funktionen, kommer ändringarna att synas utanför funktionen också.
Med + klonar vi listan, i append så adderar vi något till listan, vi klonar alltså INTE listan med append vilket vi gör med +.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad är skillnaden mellan syntaxfel och exekveringsfel? Hur vet man om ett fel är syntaxfel eller exekveringsfel?

A

syntaxfel, programkoden är så mycket fel att det inte ens är ett giltigt program, programmet kan inte köras, exekveringsfel är att det är ett giltigt program men resultatet inte blir som man tänkt sig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad är en breakpoint? När används den och var i koden kan den ligga? Ge exempel i din kod på var du använt breakpoints

A

En punkt du kan placera i koden för att pausa körningen av koden, den används när man vill se vad koden gör för saker steg för steg, oftast för felsökning. Ligger oftast vid expressions och inte statements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är skillnaden mellan Step over och Step into? Demonstrera användningen i din kod

A

Step over används för att gå vidare till nästa rad utan att gå djupare in i funktioner, medan step into används för att gå in i en funktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Förklara skillnaden mellan en loop över element och en loop över platser i en lista. Hur uttrycks detta i python? Vilka av de extra övningarna ovan behöver respektive looptyp?

A

Loop över element kollar värdena av listan, medan en loop över platser kollar index för platsen i listan

listelement:
for <loopvariabel> in <lista></lista></loopvariabel>

listindex:
for <variabel> in range(len(<lista>))</lista></variabel>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Förklara skillnaden mellan while och for, och i vilka sammanhang respektive looptyp är lämplig. I vilka av teknikövningarna ovan är det lämpligt med while och i vilka är det lämpligt med for?

A

For loopen används när vi redan vet hur många iterationer vi kommer köra, då bestämmer vi antalet itirationer, medan i while så vet vi inte hur många gånger
vi ska köra loopen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly