Kort om Python-versjoner og m?ter ? bruke Python
Det finnes to hovedversjoner av Python som er i aktiv bruk; Python2 og Python 3. I tillegg finnes det en del ulike m?ter ? bruke Python p?, som kan v?re litt forvirrende i starten. Her gir vi en veldig kort oversikt over de ulike versjonene og m?tene vi bruker Python p? i IN1900.
Python 3 og Python 2
H?sten 2017 bruker vi prim?rt Python 3 (3.6) i IN1900. Det er denne versjonen som blir brukt p??forelesning, mens alle eksempler i l?reboka er skrevet i Python 2 (2.7). Det er valgfritt hva man vil bruke selv, og alle oppgaver og innleveringer kan skrives enten i Python 2 eller Python 3.
Det er en del forskjeller mellom Python 2 og Python 3, men for den programmeringen vi gj?r i IN1900 er det bare noen f? forskjeller som er viktige:
- Den mest synlige forskjellen i v?re programmer er i bruken av print for ? skrive ut noe til skjermen. I Python 2 skiver man f.eks. print "Hello", mens i Python 3 er print en funksjon, s??man skriver print("Hello")
- Heltallsdivisjon er forskjellig h?ndtert i Python 2 og 3. I Python 2 (og mange andre programmeringsspr?k) blir 1/2 ikke 0.5, men 0! Dette er fordi vanlig divisjonstegn (/) betyr heltallsdivisjon n?r argumentene er heltall. Dette er nyttig i mange former for programmering, men er vanligvis ikke det vi er ute etter i IN1900. For ? unng? feil resultat er det en god vane ??skrive 1.0/2.0, og generelt forsikre seg om at argumentene som brukes i divisjon er flyttall. I Python 3 er ikke dette n?dvendig, da divisjonstegnet / alltid betyr vanlig flyttallsdivisjon.
- H?ndtering av tekst med norske tegn er forenklet. I Python 2 kan man normalt ikke bruke ?, ? og ?, heller ikke i kommentarer, da disse ikke er med i standard-tegnsettet som Python forst?r. Dette er endret i Python 3.
- I Python 2 har vi range og xrange som gj?r ca det samme, men range lager en liste og xrange en s?kalt iterator, som er mer effektiv. I Python 3 finnes bare range, som gj?r det samme som xrange i Python 2. Mer om dette senere.
- I Python 2 finnes input og raw_input for ? lese inn tekst fra brukeren. I Python 3 finnes bare input, som gj?r det samme som raw_input i Python 2. Mer om dette senere.
Denne listen er langt fra komplett, men dette er de viktigste forskjellene vi vil m?te p??i IN1900.
Ulike m?ter ? bruke Python
Det finnes (minst) tre ulike m?ter ? bruke Python p?, som kanskje kan virke forvirrende i starten. Her er en kort forklaring.
- Standard/klassisk programmering. Dette er den m?ten vi prim?rt skal bruke Python i IN1900. Vi skriver programmer (ogs? kalt scripts) i en editor, og hvert program er en eller flere tekstfiler med lovlig Python-kode. Deretter kj?rer vi programmet fra et terminalvindu, som beskrevet i veiledingene om installasjon og bruk av Python.
- Python som interaktivt verkt?y. Hvis du ?pner et terminalvindu og skriver python f?r du et s?kalt interaktivt Python-shell. Et annet alternativ er iPython, som er et noe utvidet Python-shell. I Python-shellet kan du skrive inn linjer med Python-kode og kj?re hver linje interaktivt. Dette kan v?re veldig nyttig for ? gj?re enkle utregninger og for ? sjekke Python-syntaks og hvordan ulike komandoer brukes. For all annen programmering (dvs mer enn et par linjer) er det vanligvis bedre ? skrive koden i en fil og kj?re programmet p? vanlig m?te.
- Jupyter notebooks. En Jupyter notebook er et dokument som kan inneholde en blanding av tekst, kode og figurer. Dokumentet vises og redigeres gjennom en vanlig browser, og kj?rer som en bakgrunnsprosess enten p??egen maskin eller p??en server. Notebooks er velegnet for undervisningsform?l, siden det er enkelt ??forklare ulike programmeringskonsepter i detalj, og kombinere dette med "live" kode som man kan forandre p??og se resultatet direkte. I IN1900 kommer vi ikke til ??bruke Notebooks i s?rlig stor grad, men det kan bli brukt som et alternativ til foiler p??enkelte forelesninger, og noen Notebooks vil bli lagt ut som tilleggsmateriale for ??forklare deler av pensum.