Temaer gruppetime uke 12 2021
- Vi ser p? hvordan man kan dele opp koden i
velg_retning
- Debugging (n?r sauen ikke gj?r det man tror den skal gj?re)
- Ikke g? videre f?r tester passer. Skriv gjerne flere tester enn du tror du trenger.
- Ikke v?r redd for ? printe ting for ? se hva som skjer i koden
Oppgave
# Programmet skal lese navn og alder fra 3 ulike filer og printe navnene sortert
alle_navn = []
f = open("navn1.txt")
for line in f:
navn = line.strip()
alle_navn.append(navn)
f = open("navn2.txt")
for line in f:
navn = line.strip()
alle_navn.append(navn)
f = open("andre_navn.txt")
for line in f:
navn = line.strip()
alle_navn.append(navn)
print('\n'.join(sorted(alle_navn)))
N?stede lister, rask kode og et sidespor med numpy
Oppgave 1
Lag en funksjon lag_rutenett
som tar bredde
og hoyde
som parametere. Funksjonen skal lage et rutenett som en n?stet liste der hver sub-liste er en rad i rutenettet (raden er "bredde" lang). Hver rute inneholder enten 0 eller 1 (med 50% sannsynlighet).
Oppgave 2
Lag en funksjon antall_ikke_null(rutenett)
som tar et rutenett og returnerer antallet ruter som ikke er 0.
Ektraoppgave: Lag ogs? en funksjon gjennomsnitt(rutenett)
som finner gjennomsnittet.
Ekstraoppgave 2: Anta at du vil ha flere funksjoner som gj?r ting med et rutenett (printer det f. eks), ser du da noen ryddigere m?te ? strukturere koden din p? ?
Oppgave 3
Kall funksjonen antall_ikke_null
10000 ganger med samme rutenett som er 1000x1000 stort. Hvor lang tid tar alle disse kallene? Klarer du ? skrive kode som gj?r at det g?r raskere?
Du kan time koden slik:
import time
rutenett = lag_rutenett(1000, 1000)
start_tid = time.time()
# gj?r ting
slutt_tid = time.time()
print("Tid det tok:", slutt_tid-start_tid)
Oppgave 4:
Vi gj?r dette med numpy i stedet.
Hvilken annen fordel tror dere numpy har i tillegg til ? v?re raskere?