Forts Programmering Flashcards

1
Q

Vad är klasser?

A

En klass är en datastruktur

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

Vad är ett objekt?

A

Ett objekt är en instans skapad ur en klassdefinition (mall) och har därför samma uppsättning (instans-variabler med egna värden), och samma uppsättning funktioner (metoder)

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

Vad måste vara med i en klass?

A

konstruktorn

def __init__(self):

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

Är objekt skapade ur samma klass beroende av varandra?

A

Nej, objekten som är skapade ur en klass är oberoende av varandra och har egna värden

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

Hur kan man komma åt variabler inuti ett objekt?

A

print(person1.birth)

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

Vad är en metod?

A

En funktion som tillhör klassen

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

Vad måste finnas med i en metod?

A

Parametern self måste vara med oavsett

def age (self):

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

Varför måste self vara med?

A

Self refererar till objekten själv och måste därför skickas med i processer för att klassen ska veta vilket objekt det är som ska använda sig av funktionen

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

Varför börjar instansvariabler med self?

A

För att visa att de tillhör objektet

class Person:
def __init__(self, name):
self.name = name

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

Vad är en konstruktor?

A

En konstruktur är en metod som körs automatiskt när ett objekt skapas, ex. __init__

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

Hur kan man utföra en metod från en klass?

A

person1.update_name(“Kalle”)

objekt.funktion(argument)

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

Vad är ett klassamband?

A

En sambandstyp som förbinder två eller fler klasser

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

Vad är information hiding?

A

Ett sätt att skydda/gömma variabler så att de inte är synliga utifrån.

Bra för att undvika att variabler som inte är relevanta/ ska kommas åt utifrån. Endast funktioner, hur dessa anropas och deras syfte blir synlingt

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

Hur gör man information hiding?

A

Det görs i python genom att “name-mangla” instansvariablerna, att börja namnet med två understreck.

self.__name = name

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

Vad är rekursion?

A

Rekursion handlar om att anropa sig själv

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

Vad är en rekursiv funktion och vad är det bra för?

A

Rekursiva funktioner delar upp ett problem i mindre delar och anropar sig själv för varje av de mindre delarna.

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

Vad är ett krav för rekursiva funktioner?

A

Det måste finnas ett base case/ termineringsvillkor vid vilken funktionen slutar anropa sig själv.

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

Vad är två exempel på när man kan använda rekursiva funktioner?

A

Att exempelvis räkna ut factorial, skapa träd.

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

Vad är träd?

A

Den vanligaste datastrukturen inom IT

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

Vad kännetecknar Träd?

A
  1. Lagrar data hierarkiskt
  2. Har en root node
  3. Alla noder har en förälder (förutom root)
  4. Varje nod har 0 eller fler barn
  5. En nod utan barn kallas för löv
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Vad är ett binärt träd?

A

Binära träd har MAX 2 barn per nod

  • Vanlig struktur för sortering och parsning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Träd kan endast ha heltal som värden för noderna: S/F?

A

Falskt, Värden kan också vara floattal eller strängar

23
Q

Vad är grafer?

A

Datastrukturer likt som Träd som är en typ av graf

24
Q

Vad består grafer av?

A
  1. Noder
  2. Bågar som binder samman noder
25
Q

Vilka typer av grafer finns det?

A
  1. Riktade
  2. Oriktade
  3. Viktade
  4. Cykliska
    4.1 Acykliska
26
Q

Vad är numpy?

A

Ett python bibliotek som gör det möjligt att representera multidimensionell data på ett mer flexibelt sätt än listor genom arrays

27
Q

Vilka numpy funktioner är vanliga?

A
  1. np.array(värden)
  2. np.shape(my_array)
  3. np.zeros([rader,kolumner])
  4. +
  5. -
  6. =
  7. > <
  8. np.mean(array, [axis])
  9. np.sum(array, [axis])
  10. np.arange(From,To, [Diff])
  11. np.min(array, [axis])
  12. np.max(array, [axis])
  13. np.argmin(array, [axis])
  14. np.argmax(array, [axis])
28
Q

Vad består en dataframe av?

A
  1. Columns
  2. Index
  3. Values
29
Q

Hur skriver man en Dataframe?

A

df = pd.DataFrame(data= {})

Ofta men behöver inte vara en dictonary som representerar datan {}

30
Q

Hur kan man komma åt de olika delarna ur en dataframe, dvs. Index, Columner och Values?

A

Columns: print(df.columns)
- Printar en lista av vad alla kolumner i dataframen är

Index: print(df.index)

Values: print(df.values)
- Ger numpy array av värden i rader och kolumner

31
Q

Hur kan man få ut data från df?

A

columner: print(df[“columnname”])

raddata: print(df.iloc[index])

32
Q

Hur kan man läsa filer i pandas?

A

pd.read_csv(“filnamn.csv”)
pd.read_excel(“filnamn.excel”)

33
Q

Vad används histogram för?

A

Visar ofta frekvens av en variabel, fördelning

34
Q

Vad används Linjediagram/Lineplots för?

A

För att visualisera trender eller mönster. Visar ofta förändringar över tid eller kontinuerliga värden

35
Q

Vad används scatterplots till?

A

Visar relation/Samban dmellan två olika variabler

Används ofta för att kunna identifiera korrelationer eller mönster

36
Q

Vad används Stapeldiagram/Bar plots för?

A

Visar ofta antal/Frekvens för olika kategorier / grupper

Ex. Hur många av varje som tycker om färgerna gul, röd, blå

37
Q

Vad används en boxplot för?

A

Visar fördelning av data på 3 olika variabler. Ger en mer detaljerad vy över hur datan är fördelad

Median, IQR (25% -75%) och sträck som visar ca 1,5% av IQR

38
Q

Vad är skillnaden mellan Grafik och GUI?

A

Grafik bibliotek är skapade för ren grafik, visualisering och spel.

GUI - Graphical User Interface är skapade för att bygga grafiska gränssnitt. Ex. genom “widgets” eller mindre byggstenar så som knappar, formulär

39
Q

Man kan dela upp GUI i två sätt, vilka då? Och vad är skillnaden samt vad är de olika bra på?

A

Native GUI och Egendesignat GUI

Native GUI har samma utseende som resterande program på plattformen, exempelvis Mac, Linux, Windows. Ser olika ut då beronde på vilken plattform man är på

  • Native Gui är bra för standard program som man vill ska matcha andra program

Egendesignat GUI har ett eget utseende på fönster och kontroller
Det ser likadant ut oavsett vilken plattform man kör det på

  • Bra för program man vill ska se likadant ut på alla plattformar ex. Spotify etc.
40
Q

Ge 3 exempel på grafik bibliotek

A

Turtle, Flutter, Arcade, (Pygame)

41
Q

Ge 3 exempel på GUI bibliotek

A

Tkinter, Qt for Python, Kivy, Flet, PysimpleGui

42
Q

Vilket GUI bibliotek har native utseende (som de tog upp)

A

Qt for Python

43
Q

I den träd klass de visar vad finns med?

A

Data behöver skickas med som parameter
Instansvariabler left och right som initialt är 0

class Tree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None

 def \_\_str\_\_(self):
       return str(self.data)
44
Q

Hur kan en insert funktion för att inserta noder och värden i en trädstruktur se ut?

A

def insert(node, data):
if node == None
node = Tree(data)
return node
elif data <= node.data:
node.left = insert(node.left, data)
return node
node.right = insert(node.right, data)
return node

45
Q

Hur kan en funktion som skriver ut trädets värden i en ascending order se ut?

A

def write_ascending(node):
if node == None:
return
write_ascending(node.left)
print(node.data, end=” “)
write_ascending(node.right)

46
Q

Vad är höjden av ett träd och hur kan man skriva en funktion som beräknar det?

A

Höjden av ett träd räknar antalet nivåer

För att beräkna höjden behövs först en max funktion

def max(a,b):
if a> b:
return a
return b

def height (node):
if node == None:
return 0
else:
h = 0
h = max(h, node.left)

47
Q

Vad är python koden för att koppla upp sig, execute och hämta sql kod?

A

import sqlite3
conn = sqlite3.connect(“my_db.db”)
cursor = conn.cursor()

cursor.execute(‘’’ SQL STATEMENT ‘’’)

all_rows = cursor.fetchall()

for row in all_rows:
print(row)

48
Q

i np.sum(“my_arr”, axis=0) på vilken ledd summerar den?

A

Den summerar lodrätt, neråt

49
Q

på vilken ledd jobbar axis=1

A

axis=1 är horisontell, längs med rader

50
Q

I vilka np funktioner kan man använda axis?

A

np.sum(), np.mean(), np.min/max(), np.argmin/argmax()

51
Q

Hur kan man beskriva en np array med shape(3,2,4)?

A

den har 3 rader, med 2 listor i varje rad, och varje sån lista har 4 element i sig.

[[[0,0,0,0],[0,0,0,0]]
[[0,0,0,0],[0,0,0,0]]
[[0,0,0,0],[0,0,0,0]]]

52
Q

om man vill hämta alla värden från rad 1 som är över 10, hur kan man göra i numpy?

A

my_arr[1, [my_arr> 10]]

53
Q
A