course join grudat06. Det
förbättrar din miljö lite grann genom att aktualisera din course-home-page.html
och genom att göra pythonkommandot tillgängligt.
Pröva också course help. Om du ska labba ihop med u1pnyxtr kan
course labdir grudat06 u1pnyxtr vara lämpligt.
Se till att din labbkompis på sitt konto gör motsvarande kommando
med ditt användarnamn, så kommer ni att få en gemensam katalog
grudat06 där ni kan spara alla program ni skriver i kursen.
Skriv nu i terminalfönstret res checkin grudat06 och svara på
frågorna om personnummer och studiestatus. Frågan om numret på övningsgruppen
besvarar du med det labbpass du just nu deltar i.
res show grudat06
kolla att dina labbar har blivit rapporterade
sm startar hjälpkön, eventuellt
först efter module add sima. Kommandot python
startar pythontolken, eventuellt först efter module add python.
Pythontolken fungerar som Matlab men måste importera alla mattefunktioner.
>>> 17*17
>>> a=17
>>> a*a
>>> sqrt(a) #Går inte så bra.
>>> from math import sqrt #eller from math import *
>>> sqrt(a) #Nu går det.
>>> for x in 17,666,4711: #Glöm inte kolon på slutet!
>>> print "Roten ur",x,"är",sqrt(x) #Gör indrag med tab-tangent
>>> #Extra returtryckning avslutar
>>> while a>1: #Glöm fortfarande inte kolon!
>>> a-=1 #Betyder som i Java a=a-1
>>> print a, #Kommat ger samma rad
>>>
>>> def dubbla(x): #Glöm inte kolon!
>>> return x+x
>>>
>>> dubbla(17)
>>> dubbla("oj")
>>> dubbla(dubbla("oj"))
>>> ctrl-D #ctrl-D avslutar python
För programskrivning är pythontolken mindre användbar och man
skriver hellre pythonprogram i Emacs.
grudat06 en underkatalog lab1
och kopiera en fil från kurskatalogen /info/grudat06,
nämligen gissa.py.
Kör programmet med python gissa.py. Om du inte vinner
kan du köra flera gånger.
Ta in filen i Emacs. Som du ser går Emacs över i Python-tillstånd och det
betyder bland annat att den sköter indrag själv (så gott det går).
Under Options-menyn finns alternativet Syntax Highlighting.
Väljer du därunder In This Buffer ser Emacs
till att färglägga programmet.
Nu ska du ändra lite på koden
så att vinstföremålet väljs slumpmässigt. Enklast är det
att använda random.choice(vinstlista) om du
importerat modulen random och tilldelat
vinstlista en lista av saker, till exempel
("pengar","berömmelse","en levande python").
Hellre än ett självständigt program vill du ha något som kan anropas
med gissa() och då kör en spelomgång. Kopiera koden till filen
spel.py och sätt in en rad def gissa(): överst.
Alla rader nedanför måste nu ha ett extra indrag, men försök inte
göra det för hand - man gör lätt bort sej! Två tangenttryckningar räcker:
Markera alla rader som ska flyttas till höger och ge emacskommandot ctrl-C >.
Längst ner kan du skriva ditt enradiga huvudprogram som gör anropet. Provkör!
Ta bort den understa raden igen och gör en egen fil för huvudprogrammet
som får heta lab1.py. Det måste nu importera din spelfil
innan det gör anropet. Provkör!
Det fulländade programmet ska ge användaren följande meny.
Välj spel: 1 Gissa tal 2 Först till 21 3 SlutaDu får från kurskatalogen kopiera filen tjugoett.py och lägga in även den i spel-filen, så att den kan anropas
tjugoett(). Överst i spel-filen ska du definiera
def spela(nr): som beroende på nr anropar
ett av spelen.
Nu kan ditt huvudprogram i lab1.py klara sej med att
importera en enda sak:
from spel import spela
Det här datalogiska greppet kallas abstraktion.
Förklara kort vad det innebär och varför det är bra!
Redovisa ditt program för någon handledare och passa på att fråga om det du undrar över!