1 / 28

Ordlistor, filhantering och ut på webben

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.

lynda
Download Presentation

Ordlistor, filhantering och ut på webben

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ordlistor, filhantering och ut på webben Linda Mannila 20.11.2007

  2. 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

  3. Denna föreläsning • Ny datatyp – ordlistan (dictionary) • Modulen webbrowser • Filhantering

  4. Ordlistor (dictionaries) • Samlingsdatatyp • ”Nyckel-värde”-par • Påminner om en vanlig ordbok katt kissa hund koira ko lehmä

  5. Ordlistor (dictionaries) • Skapar en tom ordlista: ordlista = {} • Skapar en ordlista med ett nyckel-värde-par i. ordlista = {’katt’:’kissa’}

  6. Skapa ordlistor • Skapar en tom ordlista: ordlista = {} • Skapar en ordlista med ett nyckel-värde-par i. ordlista = {’katt’:’kissa’} Nyckel Värde

  7. Nycklar och värden • Får endast finnas en nyckel med samma namn i en ordlista ordlista = {’katt’ : ’kissa’, ’katt’ : ’misu’}

  8. 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

  9. 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'}

  10. 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'}

  11. Funktioner på ordlistorTa 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'}

  12. Funktioner på ordlistorAntalet par i en ordlista: len • Funktionen len berättar hur många nyckel-värde-par som finns i ordlistan >>> ordlista {'hund': 'koira', 'katt': 'misu'} >>> len(ordlista) 2

  13. Exempel Provkörning: Svenska Engelska ------------------ blå blue gul yellow grön green röd red 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])

  14. Ordlistmetoderkeys() • keys() returnerar en lista över vilka nycklar som finns i ordlistan >>> ordlista {'hund': 'koira', 'katt': 'misu'} >>> ordlista.keys() ['hund', 'katt']

  15. Ordlistmetodervalues() • values() returnerar en lista över vilka värden som finns i ordlistan >>> ordlista {'hund': 'koira', 'katt': 'misu'} >>> ordlista.values() ['koira', 'misu']

  16. Övriga ordlistmetoder http://docs.python.org/lib/typesmapping.html

  17. 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:

  18. Menyexempel meny = {'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älsning X Avsluta Vad vill du göra? h Hallå hallå hallå! H Skriv ut en hälsning X Avsluta Vad vill du göra? r H Skriv ut en hälsning X Avsluta Vad vill du göra? x Du vill alltså sluta. OK!

  19. Ny modul: webbrowser http://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']

  20. Ny modul: webbrowser • De olika versionerna av funktionen open (open, open_new, open_new_tab) öppnar webbsidor i browsern import webbrowser webbrowser.open('http://www.abo.fi') Webbadressen som argument

  21. Webbrowserexempel import 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 tillhttp://

  22. webboppnare.py import 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()

  23. Filhantering • Hittills: • All input via tangentbordet • All output till skärmen • Nu  filer • Hämta data ur en fil • Lagra data i en fil

  24. 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

  25. Att läsa från en fil • Öppna för läsning infil = open(filnamn,’r’) • Läs filens innehåll data = infil.read() • Läs en rad i taget for rad in infil: kod som gör något med raden

  26. Att skriva till en fil • Öppna för skrivning utfil = open(filnamn, ’w’) • Skriv en sträng till filen utfil.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’

  27. 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()

  28. 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

More Related