qr code

Python

Om Python

Python

Om Python

Python är ett programmeringsspråk som är uppkallat efter Monty Python's Flying Circus. Pythons syntax kan av nybörjare upplevas som något enklare än den syntax många andra programmeringsspråk har. Många programmeringsspråk använder sig exempelvis av en större mängd måsvingar {} och semikolon, tecken som inte behövs i Python. Av den anledningen kan Python fungera bra som nybörjarspråk, även om det möjligen kan upplevas som något torrt av ungdomar.

Python har väl utbyggda bibliotek för matematik, det är därför vanligt att Python används inom matematikämnet på gymnasiet och vid universitet.

Vi kommer i denna kurs att skriva, och köra, alla Python-program på webben på sidan https://repl.it/.

Du kan också ladda ner Python till din dator. Vissa datorer har Python som förinstallerat program, detta gäller exempelvis för Mac OS. Det går att skriva Python-program i vilken texteditor som helst men för nybörjare kan det vara enklast att använda någon utvecklingsmiljö, ett så kallat IDE (Integretaded Development Environment) med vilken man kan skriva, köra och felsöka program.

Olika versioner av Python

Python finns i två olika versioner, Python 2 och Python 3, vilka i sin tur finns i olika versioner Python 2.x. och Python 3.x. Den första Python 3 versionen kom redan år 2008 men eftersom det fortfarande finns många bibliotek som inte gjorts om till Python 3, används fortfarande Python 2. Python 3 är inte bakåtkompatibel med Python 2, program skrivna i Python 2 kan därför oftast inte köras i Python 3.

Vi kommer att använda Python 3 vilken används av repl.it.

IPython

Med IPython kan man kombinera text med körbara rutor för kod. På så vis kan man skapa interaktivt undervisningsmaterial. Det material som skapas är en så kallad IPython Notebook.

En IPython Notebook kan enkelt visas som en hemsida. Hemsidan är i sådana fall statisk, dvs den kod som visas kan användaren inte ändra eller köra. Man kan däremot ladda ner en Ipython Notebook och använda den i en utvecklingsmiljö där all kod är interaktiv. Ett exempel på en sådan statisk hemsida är The Crank-Nicolson Method, i det övre högra hörnet av hemsidan kan man ladda ner detta material.

Om du vill kunna skapa och köra IPython Notebooks, kan du inte använda https://repl.it/. Det enklaste är att ladda ner någon utvecklingsmiljö för Python och IPython. Två nedladdningsalternativ är:

Om du vill kunna skapa, eller köra, Ipython Notebooks utan att ladda ner en utvecklingsmiljö, går det bra att göra det online på sidan Cocalc ‐ Collaborative Calculation in the Cloud.

IPython Notebooks används mest till material som är på universitetsnivå och det finns nog inte många sammanhang inom grundskolans undervisning där en Notebook hade tillfört någonting. Däremot kan det vara bra som lärare att känna till vilka pedagogiska verktyg som finns i samband med Python-programmering.

Python och andra program

Det går att använda Python för att göra webbapplikationer. I sådana fall används något så kallat Python-ramverk varav Django är det vanligaste. Exempelvis är sajten reddit gjort i Python.

Python används ofta av andra program som ett så kallat skriptspråk, ett skriptspråk som kan användas för att manipulera programmet i fråga. Som ett sådant exempel kan vi nämna programmet Blender vilket används för att göra 3D-modeller och animeringar i 3D. I Blender kan man skriva kod i Python som exempelvis skapar 3D-objekt eller styr en animering.

Mandelbrotmängd i Blender
Mandelbrotmängd gjord i Blender med ett Python-skript.

Mandelbrotmängden i bilden ovan är gjord med följande Python-skript:

import bpy
from math import log

precision = 200
bpy.ops.mesh.primitive_grid_add(x_subdivisions=500, y_subdivisions=500,location=(0, 0, 0), radius =2)
vert_coord = bpy.context.active_object.data

for vert in vert_coord.vertices:
    count = 1
    x_loc = vert.co[0]
    y_loc = vert.co[1]
    z_loc = vert.co[2]
    z_0 = complex(x_loc, y_loc)
    z_n = z_0
    while abs(z_n) < 2 and count < precision:
        count += 1
        z_n = (z_n**2)+z_0
    vert.co[2] = log(count+1)/10