Python

:*Se også: [[Pyton]].*

**Python** er et programmeringsspråk startet på av Guido van Rossum i 1989. Van Rossum valgte navnet «Python» fordi han var i et lekent humør da han skulle finne på navn, og fordi han er fan av Monty Python. 

Python var opprinnelig et skriptspråk for det distribuerte operativsystemet Amoeba 809 for å lage systemendringer. Perl, Ruby, Tcl, Scheme og tildels Java blir ofte sett på som alternativer til Python. Mange ser på Python som en nyere, men strengere og en mer striglet versjon av Perl. Python er utviklet som et fri programvare-prosjekt.

Python har en lettlest og klar syntaks. Kodeblokker i Python avgrenses basert på linjeskift og innrykk i motsetning til andre populære programmeringsspråk der par av  spesialtegn eller tegnstrenger brukes, slike som `{` og `}` eller `BEGIN` og `END`. Uansett språk er det skikk og bruk å benytte innrykk i kode, på det viset kan spesialtegn for å markere begynnelse og slutt anses som unødvendige. Innrykksreglene er gjort påkrevet i Python. Dette trekk ved språket forenkler og gjør det derfor raskere å skrive og lese.

I flere år på rad har Python oftest vært blant de fem øverste i kåringer over verdens mest brukte programmeringsspråk. Det har hos en del universiteter og andre undervisningsinstitusjoner erstattet Java som det programmeringsspråket de fleste studenter kommer i kontakt med.

*wxPython* er et wrapper-bibliotek som gjør det mulig å programmere med wxWidgets i Python. Som wxWidgets er wxPython gratis programvare.

## Objektorientert programmering
Python er et objektorientert programmeringsspråk, og tillater for eksempel *polymorfisme*. I motsetning til mange andre objektorienterte språk, som for eksempel Java og Smalltalk, er det allikevel fullt mulig å skrive et prosedyre-drevet program.

## Eksempler
### Hello, world

```python3
print("Hello, world!")
```
Fra og med Python 3 må `print` skrives slik: `print("Hello, world!")`. Tidligere kunne man skrive `print "Hello, world!"`. 

### Variabler

```python3
#! /usr/bin/env python
variabel = "var" # i python trenger man ikke noe tegn foran variabler.
print(variabel) # resultat: var.

## variabler i praksis:
name = input("Ditt navn: ") # lagrer brukerinput i variablen name. Input() er en innebygd funksjon for input.
print(name) # resultat: det du har skrevet inn i input
```


### Enkel bruk av en liste (matrise)
Dette enkle programmet demonstrerer bruken av liste-datatypen og innrykk.
```python3
# En liste inneholder en serie verdier, som kan være av mange typer, f.eks. tekst eller tall.
list = ["en", 2, 3, "fire", 5, "seks", 7, "8"]

for element in list:
    # Den neste linjen har et innrykk som gjør at den regnes som en del av for-løkken
    print(element)

# Denne linjen har samme innrykk som for-løkken, altså vil den ikke kjøres før løkken er ferdig. 
print("ferdig")
```


### Bruk av klasse og objekt

```python3
import math # importer mattebibliotek

class Sirkel:

    # konstruktør-metode
    # denne kalles når objekt opprettes fra klasse
    def __init__(self, radius):

        self.radius = radius


    # beregn diameter ( d = 2 * r )
    def faaDiameter(self):
        return 2 * self.radius

    # beregn areal ( a = pi * r * r )
    def faaAreal(self):
        pi = math.pi # hent tallet pi fra mattebibliotek
        return pi * self.radius * self.radius;
        
    # beregn omkrets  ( o = 2 * pi * r )
    def faaOmkrets(self):
        pi = math.pi 
        return 2 * pi * self.radius

# Lager et objekt av klassen sirkel med radius r=10.
sirkel1 = Sirkel(10)

print(sirkel1.faaDiameter()) # skriver ut diameter: 20
print(sirkel1.faaAreal())    # skriver ut areal: 314.1592
print(sirkel1.faaOmkrets())  # skriver ut 31.4159
print("-------------------") # strek for å skille sirkler

# Lager et nytt objekt av klassen sirkel 
# med radius r=3
sirkel2 = Sirkel(3)
print(sirkel2.faaDiameter()) # skriver ut diameter: 6
```


## Referanser


## Eksterne lenker
* 
* Introduksjon til programmering i Python
*