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

Siden høsten 2019 bruker vi Python 3 (3.7) i IN1900. Det er denne versjonen som blir brukt på forelesning og i forelesningsnotatene som publiseres hver uke. Samtidig er alle eksempler i læreboka skrevet i Python 2.7. For bruken i kurset er forskjellene ganske små, se liste lenger ned, og de fleste av eksemplene i boka er relevante og nyttige også for Python 3. For noen enkelte tema er det mer betydelige forskjeller mellom boka og forelesningsnotatene, men dette er da kommentert eksplisitt i notatene. Det er valgfritt om man vil bruke Python 2 eller 3 for egne oppgaver og innlevering, men Python 3 anbefales siden dette er den vanlige versjonen i dag.

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")
  • Formatering av tekst for output er endret. I Python 3.6 ble det innført såkalte f-strenger, som gjør tekstformatering enkelt og intuitivt. For eldre versjoner må man bruke en funksjon kalt format (Python 2.7-3.5) eller såkalt printf- eller %-formatering, som er den metoden som beskrives i læreboka. Vi skal primært bruke f-strenger i kurset, men forelesningsnotatene inneholder en kort beskrivelse av alle metodene.
  • 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 vil vi bruke notebooks til forelesningsnotater og til å gå gjennom nye tema i forelesninger, og det er derfor greit å kjenne til det. Man kan også fint bruke notebooks til egen programmering, for eksempel til å løse oppgaver fra forelesning og annet, men alle ukeinnleveringer skal leveres inn som vanlige .py-filer.
Av Joakim Sundnes
Publisert 15. aug. 2019 11:20 - Sist endret 15. aug. 2019 13:50