Utvikling av Pythonkode
Referanserammen for denne modulen er kjøring av Python på egen maskin. Når vi skal utvikle for nettløsninger er det en del ting i tillegg vi må passe på (rettigheter, linjeskift, eksekveringsdirektiv, debugging). Mer om dette i modulen: CGI
Jeg arbeider på Windows 7 og 10 og jeg bruker hovedsaklig Pythons egen IDLE-editor. Det er selvsagt mange andre måter å organisere arbeid med Python på enn det jeg har som referanse her.
Installasjon
Det er enkelt og ubyråkratisk å installere Python på en maskin. Last ned Python fra [1] og angi hvilken katalog installasjonen skal legges i. Python er deretter tilgjengelig i "All programs"-menyen.
Idle
Idle er Pythons egen kjøreomgivelse. Vi kan skrive kode direkt i Idle og få den eksekvert. Et eksempel på hvordan starten på en sesjon i Idle kan se ut:
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:19:30) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> print('hello') hello >>>
Vi kan bruke Idle til enkle oppgaver der vi skal ha utført noe direkte, eller dersom vi ønsker å teste ut noe. Vi kan importere andre moduler i Idle. En del av en sesjon:
>>> import math >>> print(math.sqrt(25)) 5.0 >>> def areal(h,b): return h*b >>> print(areal(2,3)) 6 >>> print(areal(w,3)) Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> print(areal(w,3)) NameError: name 'w' is not defined >>>
Egen modul
Fra idle kan vi be om å få laget et nytt vindu, File / New Window. Det vinduet vi får opp er et vindu der vi kan editere Python. Dersom vi sparer innholdet i dette vinduet med ekstension .py, har vi laget en modul. Vi kan lage et veldig enkelt (og litt meningsløst) eksempel der vi lager en modul, util.py, med to metoder: Areal og Omkrets:
""" Calculate circle """ import math def Areal(radius): return math.pi*radius*radius def Omkrets(radius): return math.pi*2*radius
Vi lagrer denne fila som utils.py. Så lager enda en module i et nytt vindu og sparer den:
import utils r=10 print('Sirkel med radius',r, '\n\tAreal:',utils.Areal(r), '\n\tOmkrets:',utils.Omkrets(r))
Så kjører vi denne siste modulen (Run/Run module i Idle-menyen). Da får vi følgende utskrift i Idle-shell, Idles hovedvindu.
Sirkel med radius 10 Areal: 314.1592653589793 Omkrets: 62.83185307179586
Enkel testing
Modulen UnitTest inneholder materiale om testing av Pythonkode. Her skal vi bare peke på en enkel mekanisme som gjøre at vi kan kjøre en module i forskjellige modi, hvorav den ene kan brukes til rudimentær testing.
Anta at vi ønsker å teste vår utils modul før vi setter den i produksjon på den måten at vi bruker den fra andre moduler (som vi allerede har gjort ovenfor). Vi døper den om til UtilsMedTest.py og lager den slik:
""" Calculate circle """ import math def Areal(radius): return math.pi*radius*radius def Omkrets(radius): return math.pi*2*radius """ code below is only run if this is main ie. if this module is the starter(__main__) """ if __name__=="__main__": print(Areal(1)) print(Omkrets(1))
Hvis vi kjører denne modulen, tester den, får vi
3.141592653589793 6.283185307179586
Vi skriver om "bruker-modulen", test1.py til test2.py
import utilsMedTest r=10 print('Sirkel med radius',r, '\n\tAreal:',utilsMedTest.Areal(r), '\n\tOmkrets:',utilsMedTest.Omkrets(r))
Vi kjører den og får som før:
Sirkel med radius 10 Areal: 314.1592653589793 Omkrets: 62.83185307179586
Altså koden i UtilsMedTest.py som ligger under linja
if __name__=="__main__":
kjører ikke
Andre editorer
Det finnes en rekke editorer som handterer Pythonsyntaks, og det er fullt mulig å sette opp alternative utviklingsmiljøer til Idle. NotePad++ er helt grei som Pythoneditor. Merk imidlertid at du må være veldig nøye med å holde styr på indentering. Hele blokkstrukturen i Pythonkoden er basert på indentering.