| 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+3sen 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 bokstavSom 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 bokstavFö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!
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |   
                                |   |  
                                   |  |