Forts Programmering Flashcards
Vad är klasser?
En klass är en datastruktur
Vad är ett objekt?
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)
Vad måste vara med i en klass?
konstruktorn
def __init__(self):
Är objekt skapade ur samma klass beroende av varandra?
Nej, objekten som är skapade ur en klass är oberoende av varandra och har egna värden
Hur kan man komma åt variabler inuti ett objekt?
print(person1.birth)
Vad är en metod?
En funktion som tillhör klassen
Vad måste finnas med i en metod?
Parametern self måste vara med oavsett
def age (self):
Varför måste self vara med?
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
Varför börjar instansvariabler med self?
För att visa att de tillhör objektet
class Person:
def __init__(self, name):
self.name = name
Vad är en konstruktor?
En konstruktur är en metod som körs automatiskt när ett objekt skapas, ex. __init__
Hur kan man utföra en metod från en klass?
person1.update_name(“Kalle”)
objekt.funktion(argument)
Vad är ett klassamband?
En sambandstyp som förbinder två eller fler klasser
Vad är information hiding?
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
Hur gör man information hiding?
Det görs i python genom att “name-mangla” instansvariablerna, att börja namnet med två understreck.
self.__name = name
Vad är rekursion?
Rekursion handlar om att anropa sig själv
Vad är en rekursiv funktion och vad är det bra för?
Rekursiva funktioner delar upp ett problem i mindre delar och anropar sig själv för varje av de mindre delarna.
Vad är ett krav för rekursiva funktioner?
Det måste finnas ett base case/ termineringsvillkor vid vilken funktionen slutar anropa sig själv.
Vad är två exempel på när man kan använda rekursiva funktioner?
Att exempelvis räkna ut factorial, skapa träd.
Vad är träd?
Den vanligaste datastrukturen inom IT
Vad kännetecknar Träd?
- Lagrar data hierarkiskt
- Har en root node
- Alla noder har en förälder (förutom root)
- Varje nod har 0 eller fler barn
- En nod utan barn kallas för löv
Vad är ett binärt träd?
Binära träd har MAX 2 barn per nod
- Vanlig struktur för sortering och parsning
Träd kan endast ha heltal som värden för noderna: S/F?
Falskt, Värden kan också vara floattal eller strängar
Vad är grafer?
Datastrukturer likt som Träd som är en typ av graf
Vad består grafer av?
- Noder
- Bågar som binder samman noder
Vilka typer av grafer finns det?
- Riktade
- Oriktade
- Viktade
- Cykliska
4.1 Acykliska
Vad är numpy?
Ett python bibliotek som gör det möjligt att representera multidimensionell data på ett mer flexibelt sätt än listor genom arrays
Vilka numpy funktioner är vanliga?
- np.array(värden)
- np.shape(my_array)
- np.zeros([rader,kolumner])
- +
- -
- =
- > <
- np.mean(array, [axis])
- np.sum(array, [axis])
- np.arange(From,To, [Diff])
- np.min(array, [axis])
- np.max(array, [axis])
- np.argmin(array, [axis])
- np.argmax(array, [axis])
Vad består en dataframe av?
- Columns
- Index
- Values
Hur skriver man en Dataframe?
df = pd.DataFrame(data= {})
Ofta men behöver inte vara en dictonary som representerar datan {}
Hur kan man komma åt de olika delarna ur en dataframe, dvs. Index, Columner och Values?
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
Hur kan man få ut data från df?
columner: print(df[“columnname”])
raddata: print(df.iloc[index])
Hur kan man läsa filer i pandas?
pd.read_csv(“filnamn.csv”)
pd.read_excel(“filnamn.excel”)
Vad används histogram för?
Visar ofta frekvens av en variabel, fördelning
Vad används Linjediagram/Lineplots för?
För att visualisera trender eller mönster. Visar ofta förändringar över tid eller kontinuerliga värden
Vad används scatterplots till?
Visar relation/Samban dmellan två olika variabler
Används ofta för att kunna identifiera korrelationer eller mönster
Vad används Stapeldiagram/Bar plots för?
Visar ofta antal/Frekvens för olika kategorier / grupper
Ex. Hur många av varje som tycker om färgerna gul, röd, blå
Vad används en boxplot för?
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
Vad är skillnaden mellan Grafik och GUI?
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
Man kan dela upp GUI i två sätt, vilka då? Och vad är skillnaden samt vad är de olika bra på?
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.
Ge 3 exempel på grafik bibliotek
Turtle, Flutter, Arcade, (Pygame)
Ge 3 exempel på GUI bibliotek
Tkinter, Qt for Python, Kivy, Flet, PysimpleGui
Vilket GUI bibliotek har native utseende (som de tog upp)
Qt for Python
I den träd klass de visar vad finns med?
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)
Hur kan en insert funktion för att inserta noder och värden i en trädstruktur se ut?
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
Hur kan en funktion som skriver ut trädets värden i en ascending order se ut?
def write_ascending(node):
if node == None:
return
write_ascending(node.left)
print(node.data, end=” “)
write_ascending(node.right)
Vad är höjden av ett träd och hur kan man skriva en funktion som beräknar det?
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)
Vad är python koden för att koppla upp sig, execute och hämta sql kod?
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)
i np.sum(“my_arr”, axis=0) på vilken ledd summerar den?
Den summerar lodrätt, neråt
på vilken ledd jobbar axis=1
axis=1 är horisontell, längs med rader
I vilka np funktioner kan man använda axis?
np.sum(), np.mean(), np.min/max(), np.argmin/argmax()
Hur kan man beskriva en np array med shape(3,2,4)?
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]]]
om man vill hämta alla värden från rad 1 som är över 10, hur kan man göra i numpy?
my_arr[1, [my_arr> 10]]