Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innstallasjon og komme i gang med python Claus Schive Lærestoffet er utviklet for faget IFUD1050 Programmering med Python Hvilket programmeringsspråk vi velger bør være avhengig av hvilke oppgaver som skal løses. Python er godt egnet til tekstbehandling, lasting av nettressurser, enkle beregninger og til web-programmering. Python er et ganske komplett objektorientert språk og kan brukestil det meste, alene eller sammen med biblioteker skrevet i andre språk. Python har en lettlest og klar syntaks. I Python deles koden opp etter innrykk, noe som gjør det lettere og raskere å skrive programmer. Språket er stabilt og kan kjøres på alle aktuelle plattformer. 1. INNSTALLERE PYTHON...FEIL! BOKMERKE ER IKKE DEFINERT. 2. BRUK AV TEKSTEDITOR... 3 3. DITT FØRSTE PROGRAM... 4 4. KOMMENTARER... 4 5. VARIABLER... 5 6. LISTER OG TUPLER... 7 7. LISTER... 7 8. TUPLER... 8 9. DICTIONARIES... 9 10. TEKSTSTRENGER...9 11. UTSKRIFT OG INNLESING 9 12. IMPORT AV PAKKER 11 13. FUNKSJONER..11 14. NYTTIGE LENKER.12
Innstallasjon og komme i gang med python side 2 av 12 1. Installere Python Her følger en kort beskrivelse på hvordan man laster ned og installerer Python. Hvis man ønsker å gå inn i installasjonsprosessen uten detaljert veiledning, kan man gå til http://www.python.org/download å få den aktuelle versjonen av Python der. Windows For å installere Python på en Windows-maskin, gjøres følgende: 1. Åpne en nettleser og gå til http://www.python.org 2. Klikk på "Downloads" linken. 3. Du skal se flere linker her, med navn som "Python 2.7.8" og "Python 2.7.8 Windows Installer". Klikk på f.eks. "Windows Installer" lenken som skal gi deg installasjonsfilen direkte. Gå til trinn 5. 4. Følg instruksjonene for Windows-brukere. Det vil si å laste ned en fil som heter python- 2.7.8, hvor 2.7.8 er versjonsnummeret til den aktuelle utgivelsen. 5. Lagre Windows Installer-filen et sted på datamaskinen, for eksempel C: \ download \ python-2.7.8.msi. 6. Kjør den nedlastede filen ved å dobbeltklikke på den. Da får man opp Python Installasjons- veiviseren. Godta standardinnstillingene, vente til installasjonen er ferdig, og man er klar til å starte opp. Linux- og UNIX I mange Linux- og UNIX-installasjoner, vil en Python-tolker allerede være installert. Det kan sjekkes ved å kjøre python-kommandoen i terminal: $ python Hvis Python ikke er installert, vil man sannsynligvis få en feilmelding som følgende: bash: python: kommando ikke funnet Da må man installere Python selv, f.eks. vha. pakkebehandler. Macintosh Hvis man bruker en Macintosh, gjøres følgende: 1. Gå til standard nedlastingssiden (trinn 1 og 2 fra Windows instruksjonene tidligere i dette kapitlet). 2. Følg linken for Macintosh OS X installasjonsprogrammet. Det bør også være en link til MacPython nedlastingssiden, som har mer informasjon. MacPython siden har også versjoner av Python for eldre versjoner av Macintosh OS.
Innstallasjon og komme i gang med python side 3 av 12 2. Bruk av teksteditor Python distribueres med IDLE som er meget enkelt å ta i bruk. IDLE er Pythons egen kjøreomgivelse. Vi kan skrive kode direkt i IDLE og få den eksekvert. IDLE har blitt kritisert for dårlig brukervennlighet og manglende funksjonalitet og IDLE har blitt kalt "engangs" IDE, fordi brukerne ofte gå videre til mer avansert IDE etter hvert som de får erfaring. Mer om IDLE her: https://docs.python.org/2/library/idle.html Vi anbefaler å bruke teksteditor, gedit for LINUX brukere, TextWrangler for OS X brukere og Notepad++ for Windows brukere. Mange profesjonelle programmerere bruker også disse tekstredigeringsprogrammene. Gedit teksteditor kan installeres på Linux vha. pakkebehandler. Den kan også hentes her: http://gedit.en.softonic.com/ TextWrangler kan lastes ned her: http://www.barebones.com/products/textwrangler/download.html Notepad++ kan lastes ned her: http://notepad-plus-plus.org For installasjon av teksteditorene se her: http://learnpythonthehardway.org/book/ex0.html
Innstallasjon og komme i gang med python side 4 av 12 3. Ditt første program Skriv inn følgende tekst i en enkelt fil som navngis ex1.py. Python fungerer best med filer som slutter på.py. Hvis man er på Windows og bruker Notepad ++ så det vil se ut som nedenfor: Det kan være et problem å få skrevet kommentarer og/eller tekstkonstanter med æ,ø,å. Vi kan fortelle Python-interpretatoren hva slags koding den kan forvente å finne f.eks med linja(se linje 2 ovenfor): # coding: latin-1 Filen lagres på det området du opprettet for Python programmer da du innstallerte Python og teksteditor. I PowerShell kjøres filen ved å skrive: python filnavn 4. Kommentarer Kommentarer er viktige i programmene. De brukes for å gjøre programmene lettere å forstå, og de kan brukes til å deaktivere deler av programmet hvis man trenger å fjerne noe midlertidig. Her er hvordan kommentarer i Python brukes: Man bruker tegnet skigard (#) for kommentarer. Når man setter den i koden, er alt til høyre for det ignorert. For eksempel: # Skriv ut omkretsen av sirkelen: print 2 * pi * radius
Innstallasjon og komme i gang med python side 5 av 12 Sørg for at kommentarene sier vesentlige ting, og ikke bare gjentar det som allerede er åpenbart fra koden. Det er alltid en fordel å gjøre koden lesbar på egen hånd også, uten kommentarer. 5. Variabler Variabler i Python er lett å forstå. En variabel er i utgangspunktet et navn som representerer (eller refererer til) en verdi. For eksempel vil du kanskje navnet x for å representere 3. For å gjøre det slik, er det bare utføre følgende: x = 3 Vi tildeler verdien 3 til variabelen x. Etter at variabel har hatt en verdi tilordnet til det, kan man bruke variabelen i et uttrykk: x * 2 Merk at man må tilordne en verdi til en variabel før den brukes. Variabelnavn kan bestå av bokstaver, tall, og understreking (_). En variabel kan ikke starte med et siffer, så plan9 er et gyldig variabelnavn, mens 9Plan ikke er det. Man kan heller ikke bruke nøkkelord som f.eks. print og if som variabelnavn og de kan ikke inneholde mellomrom. Stor og liten bokstav tolkes også forskjellig. Bruk av variabler og elementær regning er kort oppsummert i tabellen under. Eksempel Forklaring 2.5 Punktum brukes som desimaltegn 2**3 ** indikerer potens. 2**3 = 8 Math.sqrt(5) Gir kvadratroten av 5 x = 1 x tilordnes verdien 1 navn = 'tore' navn = navn + navn navn tilordnes strengen 'tore' To 'tore'-strenger settes sammen; den nye verdien til navn er 'toretore' svar = x + 2 svar = 3 svar = svar + x svar = 4
Innstallasjon og komme i gang med python side 6 av 12 Typeomforming Typeomforming (casting) er å endre typen til en variabel. I Python gjøres dette ved å skrive typen og plassere det du vil konvertere i parenteser etterpå. Dette er egentlig en form for konstruktør. Noen vanlige typer er int (heltall), float (flyttall, en type desimaltall) og str (streng, dvs. tekst). Operatorer Operatorer kjenner vi fra matematikken. På et grunnleggende nivå kommer vi stort sett til å holde oss til aritmetiske (matematiske) operatorer. I Python har vi syv slike: de fire grunnleggende matematiske operasjonene, deling med avrunding mot modulo (rest ved deling) og opphøying. En annen viktig operator vi har sett til nå er tildelingsoperatoren. Med disse kan vi lage uttrykk og tildele verdiene av uttrykk til variabler. Operator Funksjon Eksempel Resultat + Addisjon 39 + 3 42 - Subtraksjon 47-5 42 * Multiplikasjon 6 * 7 42 / Divisjon 85 / 2 42 (rundes ned mot ) // Divisjon med floor 84.7 / 2.0 42.0 % Modulo 85 % 43 42 ** Opphøying 2 ** 8 256 = Tildeling the_answer = 2 ** 6-22 En annen type operator som er nyttig i forhold til kontrollstrukturer, er sammenlikningsoperatorene. 42 Operator Tester for Eksempel Resultat == Likhet 5 == 6 False!= Ulikhet 5!= 6 True > Mer enn 10 > 5 True >= Mer enn eller lik 10 >= 11 False < Mindre enn 15 < 10 False <= Mindre enn eller lik 10 <= 10 True is Samme objekt "Grr" is None False is not Ulike objekter "Grr" is not "Growl" True
Innstallasjon og komme i gang med python side 7 av 12 6. Lister og tupler Python har seks innebygde typer sekvenser, men vi skal konsentrere oss om to av de vanligste: lister og tupler. Den største forskjellen mellom disse er at lister er foranderlig, det vil si, man kan endre innholdet-og de har mange nyttige spesialiserte metoder, mens man ikke kan endre en tuppel. Dette betyr en liste kan være nyttig hvis man f.eks. trenger å legge til elementer, mens en tuppel kan være nyttig hvis man av en eller annen årsak ikke vil tillate sekvensen å endre på denne. Årsaker til den sistnevnte er vanligvis ganske teknisk, har å gjøre med hvordan ting fungerer internt i Python. Det er derfor du kan se innebygde funksjoner returnere tupler. I de fleste tilfellene er det stor sjanse for at man bruker lister i stedet for tupler i nesten alle tilfeller. 7. Lister Python har flere typer lister. De to vanligste er rekker (arrays) som enkelt kalles for list i Python og assosiative rekker (associative arrays) kalt dict etter dictionary (ordbok) i Python. En liste kan endres både verdien av sine elementer og lenge etter at den er opprettet og kalles muterbar ( mutable ). Lister i Python kan inneholde mange verdier i en variabel. Innholdet i en liste kan være av typen tall (både heltall og flyttall), sannhetsverdier (True eller False), tekst, eller en annen liste. Funksjonen print() kan brukes til å skrive ut innholdet i ei liste og list() kan brukes til å omgjøre visse objekter til en liste. Man kan opprette liste i Python på flere måter, f.eks ved å ramse opp hvert element slik som her: dager = [ Mandag, Tirsdag, Onsdag, Torsdag, Fredag, Lørdag, Søndag ] Hvis man ønsker man å lage en liste som er tom, kan man fylle lista med verdien None, som er et reservert ord for tomme elementer, slik som her: liste = [None]*5 Man kan f.eks. bruke * som repetisjonsoperator som her: omsetning_pr_mnd= [0] * 12 Man kan bruke funksjonen list( ) på et itererbart objekt oddetall = list(range(1,10,2))
Innstallasjon og komme i gang med python side 8 av 12 Hvis man er på Windows og bruker Notepad ++ så kan man opprette lister som vist nedenfor: Filen lagres på det området du opprettet for Python programmer da du installerte Python og teksteditor. I PowerShell kjøres filen ved å skrive: python filnavn 8. Tupler Tupler ligner på lister men er mindre fleksible. Når de er opprettet kan de ikke endres, dvs tupler er en ikke-muterbar sekvens. Noen Python-operasjoner krever tupler. Fordelen med tupler er at programmet kjøres raskere og at det er tryggere hvis man opererer med data som ikke skal endres. Tupler støtter operasjoner slik som lister gjør det ved at elementer kan hentes med indekser. Tupler har også metoder som index, innebygde funksjoner som len, min, max og slicing-uttrykk (plukke ut deler). I tillegg har tupler operatorene in, + og *. Tupler støtter ikke endringsmetoder som: append, remove, insert, reverse, sort. Man kan opprette tupler som vist nedenfor: #Opprette tuppel tuppel = (1,2,3) #Funksjonene list() og tuple(): konverterer mellom de to #Konvertere til liste liste = list(tuppel) # gir liste = [1,2,3] #Konvertere til tuppel tuppel2 = tuple(liste) # gir tuppel2 = (1,2,3)<?php
Innstallasjon og komme i gang med python side 9 av 12 9. Dictionaries Dictionaries, eller ordbøker, dvs. lister der listen ikke er indeksert ved tall fra 0 til n-1, men hvert element er indeksert ved et annet element. Du får tak i hver verdi ved hjelp av en tilhørende nøkkel. Dictionaries kan være svært nyttige, men vi skal ikke gå så nøye innpå dem her. Et eksempel på initialisering av en dictionary er: grunnstoffvekt = {"H":1.00794, "He":4.002602, "Li": 6.941} print grunnstoffvekt["h"] Dictionaries er som lister foranderlige. Vi legger inn en ny verdi med en gitt nøkkel i dictionarien over, ved å skrive for eksempel grunnstoffvekt["be"] = 9.012182. Vi sletter en verdi i dictionarien over ved å skrive for eksempel: del grunnstoffvekt["h"] Vi viser under begge operasjoner: grunstoffvekt["be"] = 9.012182 del grunnstoffvekt["h"] 10. Tekststrenger (string) I Python kan en tekststreng sees på som en liste av tegn og bokstaver med fast lengde. I motsetning til en liste er den ikke muterbar. For å få en tekststreng i Python må man enten sette "(doble anførselstegn) eller '(enkelt anførselstegn) rundt teksten. Tekststrenger kan inneholde format tegn. Man setter da format variabler i strengen, og så en % (prosent) karakter, etterfulgt av variabelen. Den eneste haken er at hvis man ønsker flere format i strengen til å skrive ut flere variabler, må man sette dem inni () (parentes) adskilt med, (komma). I Python finnes mange funksjoner / metoder for å undersøke og manipulere strenger Strenger er sekvenser, Mange funksjoner/metoder tilsvarer de for lister og tupler. På samme måte som for lister, kan man få ut deler av strengen ved å bruke indeks og (slice): tekst= Dette er en test tekst[0] # Gir D tekst[14] # Gir s 11. Utskrift og innlesing For å skrive noe til terminalen kan man bruke print etterfulgt av en streng. Med komma kan man skille flere deler som skal skrives ut, og Python skiller disse med mellomrom. Man har også mulighet til å danne tekst ved å angi et format. I en del tilfeller er dette enklere enn å bruke komma til å skille fast tekst fra noe som varierer. Formatene angis ved hjelp av koder som begynner med % (prosenttegnet), de viktigste er %s, strenger, %d, heltall, og %f, flyttall,. For å angi hvilke variabler som skal settes inn i strengen, etterfølges strengen av et prosenttegn og en variabel. Skal man ha flere variabler plasserer man dem i parenteser med komma mellom. Dette eksempelet tar for seg utskrift i forskjellige formater:
Innstallasjon og komme i gang med python side 10 av 12 For å lese inn noe fra bruker kan du bruke input eller raw_input. Den viktigste forskjellen på de er at raw_input() tolker at den tar inn som en streng; hvis man skriver for eksempel 42 inn når programmet ber om input vil det lagres som strengen 30, ikke tallet 30. Dette eksempelet tar for seg kommentarer og input fra bruker:
Innstallasjon og komme i gang med python side 11 av 12 12. Import av pakker En pakke, eller modul, inneholder funksjoner, konstant verdier og typer/objekter, som vi kan tenke oss å bruke. Det finnes flere forskjellig måter å importere noe fra en modul på. Nedenfor vises to eksempler på hvordan vi importerer fra pakken math: Mer informasjon om moduler og pakker her: https://docs.python.org/2/tutorial/modules.html https://docs.python.org/2/py-modindex.html 13. Funksjoner Funksjoner lar deg gruppere flere programsetninger sammen i en navngitt blokk. Funksjonen kan så kalles og da utføres alle programsetningene i den. For å deklarere en funksjon skriver man def etterfulgt av et funksjonsnavn og en liste parametre i parenteser etterfulgt av et kolon for å starte kodeblokka. Kodeblokken må skrives med innrykk. Her følger et eksempel på en funksjon som regner ut arealet i en sirkel. Funksjonen skal ha én innverdi, radiusen.: Funksjonen ovenfor kan ta et parameter som input og returnere en resultatverdi. Parametere er variabler som blir sendt til en funksjon når funksjonen blir kalt opp.
Innstallasjon og komme i gang med python side 12 av 12 14. Nyttige lenker Pythons hjemmeside https://www.python.org Aktuelle versjoner av Python http://www.python.org/download A Beginner's Python Tutorial http://en.wikibooks.org/wiki/a_beginner's_python_tutorial Python - Quick Guide http://www.tutorialspoint.com/python/python_quick_guide.htm The Official Python Tutorial http://python.org/doc/tut The Python Language Reference http://python.org/doc/ref The Python Library Reference http://python.org/doc/lib