Viktige avslutningstemaer
Lærebok, kapittel 9.3:
File Objects
# Halterman, R. L, 2019. Fundamentals of Python Programming
#
# Listing 9.5: simplefileread.py
f = open('planeter.txt') # f is a file object
for line in f: # Read each line as text
print(line[0:-1]) # Remove trailing newline character
f.close() # Close the file
# Halterman, R. L, 2019. Fundamentals of Python Programming
#
# Listing 9.6: simplerread.py
with open('planeter.txt') as f: # f is a file object
for line in f: # Read each line as text
print(line[0:-1]) # Remove trailing newline character
# No need to close the file
# Varianter av open-kommandoen
open('planeter.txt') # standard-valg
# - åpner fil for lesing
open('planeter.txt', 'r') # åpner fil for lesing
# - eksplisitt uttrykt
open('planeter.txt', 'w') # åpner fil for skriving
# - sletter eventuell eksisterende fil
open('planeter.txt', 'a') # åpner fil for skriving
# - legger nytt innhold til eksisterende
# angir tegnsett - viktig for å behandle norske tegn
open('planeter.txt', 'a', encoding='utf-8')
mutable = modifiserbar
Disse er modifiserbare:
Modifiserbar innebærer f.eks.
immutable = ikke modifiserbar
Disse er ikke modifiserbare:
mutable vs. immutable - hvordan merker vi forskjellen?
modifiserbare objekter kan forandres "in-place"
hvis vi skal lage en ny variant av et ikke-modifiserbart objekte, dannes det et nytt objekt
demo:
# Funksjon for å lage et datasett ved simulering -
# trekking av tilfeldige tall fra normalfordeling
#
# n: antall punkt som skal genereres
# mu: forventning
# sigma: standardavvik
def createRandomPoints(n, mu, sigma):
S = {}
for i in range(1, n + 1):
x = random.normalvariate(mu,sigma)
y = random.normalvariate(mu,sigma)
S[i] = x, y
return S
Lokale variabler inne i funksjonen er ikke synlige utenfor funksjonen - de har lokalt scope
Vi ønsker generelt så få globale variabler som mulig.
Grunn: Vi kan få navne-kollisjoner
Funksjoner kan skjule variabler fra globalt scope.
def createRandomPoints(n, mu, sigma):
""" Funksjon for å lage et datasett ved simulering -
trekking av tilfeldige tall fra normalfordeling.
n: antall punkt som skal genereres
mu: forventning
sigma: standardavvik
Returnerer dictionary med
punkt-id, (x,y)
"""
S = {}
for i in range(1, n + 1):
x = random.normalvariate(mu,sigma)
y = random.normalvariate(mu,sigma)
S[i] = x, y
return S
Eksempel på docstring for dokumentasjon av funksjon
Sequence types: str, tuple, list
Rekkefølgen på elementene er definert.
Støtter uthenting ved index, samt slicing (L[3], L[3:10]).
Non-sequence types: dictionary, set
Ingen fast rekkefølge.
Begge gruppene er iterable, som gjør at man kan løpe gjennom alle elementene ved for-løkker
Python Standard Library:
https://docs.python.org/3.7/library/index.html
W3Schools - Python reference:
https://www.w3schools.com/python/python_reference.asp
Emnesidene for INGG1001 - Python:
http://folk.ntnu.no/sverrsti/INGG1001-H2019/python.html
Lærebok (p.t. ingen offisiell url)