28
Ordlistor, filhantering och ut på webben Linda Mannila 20.11.2007

Ordlistor, filhantering och ut på webben

  • Upload
    lynda

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

Ordlistor, filhantering och ut på webben. Linda Mannila 20.11.2007. Vad kan vi nu?. Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Funktioner och moduler Villkorssatsen if Looparna for och while. Denna föreläsning. - PowerPoint PPT Presentation

Citation preview

Page 1: Ordlistor, filhantering och ut på webben

Ordlistor, filhantering och ut på webbenLinda Mannila 20.11.2007

Page 2: Ordlistor, filhantering och ut på webben

Vad kan vi nu? Primitiva datatyper

Tal, strängar, booleska värden Samlingsdatatyp

Listan Utskrift Indata Felhantering Funktioner och moduler Villkorssatsen if Looparna for och while

Page 3: Ordlistor, filhantering och ut på webben

Denna föreläsning

Ny datatyp – ordlistan (dictionary)

Modulen webbrowser Filhantering

Page 4: Ordlistor, filhantering och ut på webben

Ordlistor (dictionaries)

Samlingsdatatyp ”Nyckel-värde”-par Påminner om en vanlig ordbok

katt kissa hund koira ko lehmä

Page 5: Ordlistor, filhantering och ut på webben

Ordlistor (dictionaries) Skapar en tom ordlista:

ordlista = {}

Skapar en ordlista med ett nyckel-värde-par i.

ordlista = {’katt’:’kissa’}

Page 6: Ordlistor, filhantering och ut på webben

Skapa ordlistor Skapar en tom ordlista:

ordlista = {}

Skapar en ordlista med ett nyckel-värde-par i.

ordlista = {’katt’:’kissa’}

NyckelVärde

Page 7: Ordlistor, filhantering och ut på webben

Nycklar och värden

Får endast finnas en nyckel med samma namn i en ordlista

ordlista = {’katt’ : ’kissa’,

’katt’ : ’misu’}

Page 8: Ordlistor, filhantering och ut på webben

Nycklar och värden

Får endast finnas en nyckel med samma namn i en ordlista

ordlista = {’katt’ : ’kissa’,

’katt’ : ’misu’}

FEL! katt får ej finnas som nyckel flera gånger i samma ordlista

Page 9: Ordlistor, filhantering och ut på webben

Lägga till i en ordlista Sätter till ett nytt par i ordlistan

ordlistan[nynyckel] = nyttvärde

>>> ordlista = {'katt' : 'kissa'}>>> ordlista{'katt': 'kissa'}

>>> ordlista['hund'] = 'koira'>>> ordlista{'hund': 'koira', 'katt': 'kissa'}

Page 10: Ordlistor, filhantering och ut på webben

Lägga till i en ordlista Om nyckeln redan finns ersätts det

gamla värdet med det nya

>>> ordlista{'hund': 'koira', 'katt': 'kissa'}

>>> ordlista['katt'] = 'misu'>>> ordlista{'hund': 'koira', 'katt': 'misu'}

Page 11: Ordlistor, filhantering och ut på webben

Funktioner på ordlistor

Ta bort nyckel-värde-par: del Funktionen del tar bort ett

nyckel-värde-par ur ordlistan

>>> ordlista{'hund': 'koira', 'katt': 'misu'}

>>> del(ordlista['hund'])>>> ordlista{'katt': 'misu'}

Page 12: Ordlistor, filhantering och ut på webben

Funktionen len berättar hur många nyckel-värde-par som finns i ordlistan

>>> ordlista{'hund': 'koira', 'katt': 'misu'}

>>> len(ordlista) 2

Funktioner på ordlistor

Antalet par i en ordlista: len

Page 13: Ordlistor, filhantering och ut på webben

Exempel

sve_eng = {'röd' : 'red',

'blå' : 'blue',

'grön': 'green',

'gul' : 'yellow'}

print "%-9s %-9s" % ("Svenska", "Engelska")

print "------------------"

for ord in sve_eng:

print "%-9s %-9s" % (ord, sve_eng [ord])

Provkörning:Svenska Engelska ------------------blå blue gul yellow grön green röd red

Page 14: Ordlistor, filhantering och ut på webben

Ordlistmetoder

keys()keys() returnerar en lista

över vilka nycklar som finns i ordlistan

>>> ordlista{'hund': 'koira', 'katt': 'misu'}

>>> ordlista.keys()['hund', 'katt']

Page 15: Ordlistor, filhantering och ut på webben

Ordlistmetoder

values()

values() returnerar en lista över vilka värden som finns i ordlistan

>>> ordlista{'hund': 'koira', 'katt': 'misu'}

>>> ordlista.values()['koira', 'misu']

Page 16: Ordlistor, filhantering och ut på webben

Övriga ordlistmetoder

http://docs.python.org/lib/typesmapping.html

Page 17: Ordlistor, filhantering och ut på webben

Ordlistor för menyer

Ordlistor är bra för att hantera menyer i program, t.ex.

O open file

P print file

Q quit

Make your choice:

Page 18: Ordlistor, filhantering och ut på webben

Menyexempelmeny = {'H' : 'Skriv ut en hälsning',

'X': 'Avsluta' }

while True:

for val in meny:

print val + "\t" + meny[val]

svar = raw_input(‘\nVad vill du göra? ')

if svar == 'H' or svar == 'h':

print “\nHallå hallå hallå!\n"

elif svar == 'X' or svar == 'x':

print “\nDu vill alltså sluta. OK!"

break

Provkörning

H Skriv ut en hälsningX Avsluta

Vad vill du göra? h

Hallå hallå hallå!

H Skriv ut en hälsningX Avsluta

Vad vill du göra? r

H Skriv ut en hälsningX Avsluta

Vad vill du göra? x

Du vill alltså sluta. OK!

Page 19: Ordlistor, filhantering och ut på webben

Ny modul: webbrowserhttp://docs.python.org/lib/module-webbrowser.html

>>> import webbrowser

>>> dir(webbrowser)['BackgroundBrowser', 'BaseBrowser', 'Elinks', 'Error', 'Galeon', 'GenericBrowser', 'Grail', 'Konqueror', 'Mozilla', 'Netscape', 'Opera', 'UnixBrowser', 'WindowsDefault', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '_browsers', '_iscommand', '_isexecutable', '_synthesize', '_tryorder', 'browser', 'get', 'main', 'open', 'open_new', 'open_new_tab', 'os', 'register', 'register_X_browsers', 'shlex', 'stat', 'subprocess', 'sys', 'time']

Page 20: Ordlistor, filhantering och ut på webben

Ny modul: webbrowser

De olika versionerna av funktionen open (open, open_new, open_new_tab) öppnar webbsidor i browsern

Webbadressen som argument

import webbrowserwebbrowser.open('http://www.abo.fi')

Page 21: Ordlistor, filhantering och ut på webben

Webbrowserexempelimport webbrowser

sida = raw_input('Vilken sida vill du öppna? ')

webbrowser.open('http://' + sida)

Användaren behöver inte själv skriva in http://, utan det räcker med t.ex. www.abo.fi.

Programmet lägger automatiskt till http://

Page 22: Ordlistor, filhantering och ut på webben

webboppnare.pyimport webbrowser

def skriv_meny(): print "Python på webben"

meny = {"A" : "http://www.python.org", "B" : "http://www.abo.fi/~linda.mannila/proggk07"} print

for i in meny.keys(): print "%s : %s" % (i, meny[i])

val = raw_input("Vilken sida vill du öppna? ") return meny[val]

def main(): sida = skriv_meny() webbrowser.open(sida)

main()

Page 23: Ordlistor, filhantering och ut på webben

Filhantering

Hittills: All input via tangentbordet All output till skärmen

Nu filer Hämta data ur en fil Lagra data i en fil

Page 24: Ordlistor, filhantering och ut på webben

Filer

För att kunna göra något med en fil måste man först öppna den för läsning för skrivning

Page 25: Ordlistor, filhantering och ut på webben

Att läsa från en fil Öppna för läsning

infil = open(filnamn, ’r’)

Läs filens innehålldata = infil.read()

Läs en rad i tagetfor rad in infil: kod som gör något med raden

Page 26: Ordlistor, filhantering och ut på webben

Att skriva till en fil Öppna för skrivning

utfil = open(filnamn, ’w’)

Skriv en sträng till filenutfil.write(sträng)

OBS! Om filen inte finns skapas den Om den finns skrivs allt gammalt innehåll över! För att skriva sist i en fil: använd ’a’ (append) i

stället för ’w’

Page 27: Ordlistor, filhantering och ut på webben

Kom ihåg!

Att stänga filer Då man öppnar en fil (oberoende

av i vilket läge r/w/a) öppnar man kontakten till filen samtidigt låses filen så att inget

annat program kan komma åt det För att frigöra filen igen måste

man stänga kontakten Öppna: infil = open(filnamn, ’r’) Stäng: infil.close()

Page 28: Ordlistor, filhantering och ut på webben

Gardera mot fel Fel att försöka öppna en fil som

inte finns IOError

Fel att försöka läsa från en fil som man redan läst allt ur EOFError

Oberoende av fel hantera dem try - except