Lektion 5 - Dynamiska språk (4/12)
Dynamiska språk är programmeringsspråk där
programmeraren inte behöver bry sig så
mycket om hur datorn arbetar, många saker hanteras
automatiskt. Det gör att man kan
koncentrera sig på den uppgift man ska
lösa snarare än på hur datorn ska lösa den.
Det finns mycket att läsa om dynamiska språk
här.
Ruby skapades 1995 av japanen Yukihiro
Matsumoto och är ett väldigt dynamiskt
språk. Det finns många olika sätt att
göra samma saker, mycket sker
automagiskt i bakgrunden och man kan
ändra på nästan vad som helst. I Ruby
har man försökt att följa filosofin
POLS (Principle Of Least Surprise),
det vill säga om man förväntar sig att
något ska gå att göra på ett visst
sätt så ska det också vara så.
När vi programmerar Ruby på
laborationsservern behöver vi precis
som i andra skript tala om vilket
språk skriptet är skrivet i på första
raden:
#!/usr/bin/ruby
Här följer ett exempel med variabler:
enVariabel = 5
enAnnanVariabel = "Hej svej"
Python är ett annat dynamiskt och
ganska enkelt språk. Det första vi
ska lära oss är att de två första raderna
i våra program måste se ut såhär:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Dessa två rader berättar dels hur datorn
ska köra pythonprogrammet och med vilken
teckenkodning vi skriver. Labbservern vi använder är
inställd på en teckenkodning som heter
UTF-8.
Det enklaste kommandot heter print. print
skriver ut på skärmen. Om du skriver:
print "hej"
så skriver programmet ut hej. Märk väl att
det finns dubbelfnuttar kring ordet
hej. Det betyder att "hej" är en
sträng. Skulle du glömma dubbelfnuttarna
så skulle python börja leta efter en
variabel som du kallat för hej.
Variabler gör du såhär:
enVariabel = 5
enAnnanVariabel = "Hej svej"
Här ser du två st variabler. En innehåller
talet 5, den andra innehåller strängen
"Hej svej". Svårare än så är det inte.
Funktioner gör du med kommandot def, såhär:
def minFunktion():
print "hej"
Här kommer vi in på en jätteviktig sak i
Python, mellanslag spelar roll! Du måste
ha samma antal mellanslag innan saker som
hänger ihop, alltså alla kommandon som hör
till funktionen minFunktion måste ha minst
två mellanslag före sig. Mellanslagen
innan brukar man kalla för indentering.
Gör du såhär:
def minFunktion():
print "hej"
print "svej"
så är det något helt annat än om du skulle
göra såhär:
def minFunktion():
print "hej"
print "svej"
I det andra fallet så gör funktionen två
saker, den skriver först ut "hej" och
sedan "svej". I det första fallet så gör
funktionen bara en sak, sen skriver
programmet ut "svej.". En viktigt sak att
tänka på som man brukar glömma är att ha
ett kolon efter varje funktionshuvud, och
som du kommer märka nedan, även efter
varje "if" och "for" m.m.
När du väl gjort en funktion, denna t.ex.:
def minFinaFunktion():
print "hej"
print "svej"
Då kan du kalla på funktionen senare i
programmet såhär:
minFinaFunktion()
Om du vill att funktionen ska ta argument
så kan det se ut såhär:
def minFinaFunktion(text,tal):
print text
print tal+3
sen kallar du på funktionen såhär:
minFinaFunktion("Här är lite text",10)
Denna funktion kommer då skriva ut texten
och även skriva ut vad 10+3 är.
Tester gör du såhär:
def minFinaFunktion(tal):
if tal == 5:
print "Du skrev rätt tal!"
else:
print "fel tal!"
Om du nu kallar på funktionen:
minFinaFunktion(3)
så får du:
fel tal!
Loopar kan du göra såhär:
def minFinaFunktion(text):
for bokstav in text:
print bokstav
Som du ser ovan så fattar python att om du
ger for en sträng så vill du nog loopa
över bokstäverna. På samma sätt kan du
loopa över varje rad på en fil och sedan
loopa över varje bokstav på raden:
def minFinaFunktion(fil):
for rad in fil:
for bokstav in rad:
print bokstav
För att använda funktionen ovan måste du
också kunna öppna filer för läsning, det
gör du såhär:
minFil = open("en_text_fil.txt","r")
Sen kan du använda din fina funktion såhär:
minFinaFunktion(minFil)
Pwei, nu har vi lärt oss lite python!
Här kan du kolla på dagens presentation.
|
Alla är på plats
|
|
Samling runt Arvids trasiga dator
|
|
|
|
Varm glögg!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|