Python versjoner

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.
Av Joakim Sundnes
Publisert 21. aug. 2017 12:52