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 skriverprint("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 ??skrive1.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
ogxrange
som gj?r ca det samme, menrange
lager en liste ogxrange
en s?kalt iterator, som er mer effektiv. I Python 3 finnes barerange
, som gj?r det samme somxrange
i Python 2. Mer om dette senere. - I Python 2 finnes
input
ograw_input
for ? lese inn tekst fra brukeren. I Python 3 finnes bareinput
, som gj?r det samme somraw_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 progr