Tilpro Övning 1. Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: (fast de flesta frågor besvaras nog bäst av Alexander)

Relevanta dokument
Tilpro Övning Per-Anders Staav (vikarierande) (föredrar att kallas Pa) Kan nås via epost:

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

DD1314 Programmeringsteknik

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Kort-kort om utdelade användarkonton och datormiljön på NADA

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

Kort-kort om utdelade användarkonton och datormiljön på NADA

SF1672, Linjär Algebra med Matlab för F1 Lab0

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Föreläsning 3. Programmering, C och programmeringsmiljö

Datorintro för elektro på Solaris

Sätt att skriva ut binärträd

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Föreläsning 2 Programmeringsteknik och C DD1316

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Introduktion till datormiljön och Python

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Användarhandledning Version 1.2

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

Uppgifter teknik HT17 (uppdaterad v. 40)

kommando -fl argument

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Använda Python Laboration 1 GruDat, DD1344

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

F4. programmeringsteknik och Matlab

Ordlistor, filhantering och ut på webben. Linda Mannila

Laboration 1 Introduktion till Visual Basic 6.0

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

729G04 Programmering och diskret matematik. Föreläsning 7

SMD 134 Objektorienterad programmering

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

729G04 Programmering och diskret matematik

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

729G04 Programmering och diskret matematik

Besiktningsprotokollet

Föreläsning 3. Programmering, C och programmeringsmiljö

Grundläggande datalogi - Övning 1

HI1024 Programmering, grundkurs TEN

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Språket Python - Del 1 Grundkurs i programmering med Python

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

Extramaterial till Matematik Y

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

Introduktion till programmering och Python Grundkurs i programmering med Python

v. 42 Python HT17 En introduktion Oscar Bergqvist

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

HI1024 Programmering, grundkurs TEN

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

729G04 Programmering och diskret matematik. Python 3: Loopar

DD1316 Programmeringsteknik och C för E1 Laborationer läsåret 2015/2016

Laboration: Whitebox- och blackboxtesting

Variabler och konstanter

Installera Anaconda Python

Programmeringsteknik med C och Matlab

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Lathund för Linuxkommandon

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

v. 43 Python HT17 En introduktion Oscar Bergqvist

Planering av ett större program, del 2 - for och listor. Linda Mannila

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

729G04 Programmering och diskret matematik. Python'1:'Labbmiljö'och'introduk7on'7ll'Python'

Tenta i Grundläggande programmering DD klockan

Program. Kapitel make Program Interpreterande och kompilerande program

DD1315 Programmeringsteknik och Matlab för I1 Laborationer läsåret 2013/2014

Datalogi för E Övning 3

Föreläsning 18 Filer och avbildningar

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Tips och tricks. Några bra tips. Lägg till sökvägar

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Extramaterial till Matematik Y

Praktiska saker... Om Laboration 1. Studietips. Praktiska saker. Att studera hemifrån på PC. Seminarier & Lektioner & Handledning & Hemsida

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Transkript:

Tilpro Övning 1 Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: pasta@kth.se (fast de flesta frågor besvaras nog bäst av Alexander) På programmet idag: Unix (Solaris) Grunderna i Python programmering

Allmänt om datorkonton *Nadas konton är inte samma som Kth konton. Besök Delphi och fixa konto innan labben *Era passerkort fungerar till datorsalarna *Testa att ert konto fungerar innan labben, vi kommer i labbsalen endast kunna hänvisa till Delphi *Köp unix häftet från Delphi, den innehåller massor nyttigt som ni behöver när ni ska labba *När ni ska logga in. Klicka på Option och sedan session och se till att ni väljer valet CDE. Övriga fönsterhanterare fungerar sämre.

Kommandot ls Kommando: ls Effekt: listar filer i foldern Kommando: ls -a Effekt: listar även gömda filer i foldern Kommando: ls -l Effekt: listar utförlig information om filerna i foldern

Kommandot cd Kommando: cd bibliotek Effekt: flyttar dig in i biblioteket Kommando: cd.. Effekt: flyttar dig tillbaka till biblioteket ovanför Kommando: cd ~ Effekt: flyttar dig tillbaka till ditt hembibliotek Sökvägen till hembiblioteket är något i stil med /afs/nada.kth.se/home/n/u1004mnm/

afs Ett system som heter afs gör att du kan läsa dina filer oavsett dator du sätter dig vid. Vill man hitta sökvägen till sitt eget konto kan man behöva klura lite. Exempelvis kan kommandot finger <personsanvändarnamn> vara till hjälp. Upptäckte på Labben att de nu får tiden har länkat så att ~<personsanvändarnamn>/ pekar på hemkatlogen för personen. Programmet KerberosFtp låter dig logga in på nada hemifrån och lägga upp och ta ned filer.

Kommando cp Kommando: cp filattkopiera filattkopieratill Effekt: kopierar filen Ofta byter man målfilen till bokstaven. som innebär att filen läggs i biblioteket där man står Man kan använda * för att kopiera en mängd filer. *.py betyder alla filer som slutar med ändelsen py *.* betyder alla filer som har. i sig

man Kommando: man sort Effekt: visar en text sida med beskrivningar om hur kommandot grep fungerar...alla kommandon har dock inte hjälpsidor som går att hitta automatiskt Finns massor av nyttiga unix kommandon jag inte hinner gå igenom. Kolla gärna upp vad de gör t.ex. sort, grep, cat

Utskrifter Kommando: lpq Effekt: Visar vilka utskrifter som skrivs på skrivaren Kommando: lprm - Effekt: tar bort dina egna utskrifter Kommando: lprm <nummer> Effekt: tar bort utskrift med detta nummer Kommando: setprinter brun Effekt: Gör så att skrivaren som heter brun blir default skrivare.

Utskrift forts Kommando: lpp Effekt: skriver ut textfiler OBS skriver du ut pdf-fil eller bild med denna får du ut 100 tals sidor med skräptecken. Stoppa sådan utskrift omedelbart om den råkat starta. Kommando: a2ps Effekt: skriver ut programfiler lite snyggare Kommando: lp Effekt: Skriver ut filer...läs noggrant i man sidan innan ni prövar att skriva ut

Dela konto Kommando: fs lq Effekt: Visar hur mycket plats du har kvar på kontot Kommando: fs la tilpro Effekt: Visar information om vilka som får titta och göra saker med tilpro Kommando: fs sa tilpro <kompis> rlidwk Effekt: Låter person användarnamn kompis komma åt tilpro. Skapar man filer i underkataloger till tilpro kan kompisen komma åt dem med

Dela konto forts Kommando: ln -s /afs/nada.kth.se/home/n/u1004mnm/tilpro tilpro Effekt: Gör att tilpro blir en länk som vi kan gå in med cd. Gör vi dock cd.. från den katalogen hamnar vi kompisens hembibliotek. Raderas länken påverkas inte filerna som ligger i biblioteket. -s ovan betyder att det är en symbolisk länk. Detta innebär att målet kan ligga på annan hårddisk. På nada behöver man alltid göra det eftersom man inte vet vilken server filen hamnar på.

rm Kommando: rm slask.py Effekt: tar bort filen slask.py Det går att använda * för att ange flera filer men det rekomenderas ej. Raderar man för många filer är det osäkert om de alls går att få tillbaka (de kan dock ligga backupade i foldern OldFiles)

Mkdir och rmdir Kommando: mkdir tilpro Effekt: Skapar ett ny bibliotek i foldern du befinner dig. Kommando: rmdir slaskfolder Effekt: Tar bort foldern förutsatt att den är tom

allmänt Alla kommandon körs enklast från terminal fönstret. Man måste ändå köra python programmen därifrån Kommando: emacs & Effekt: Startar editorn emacs i bakgrunden så att terminalen inte hänger sig Kommando: sm Effekt: Startar hjälp systemet så att du kan köa för hjälp. Se till att ni väljer rätt kurs... Kommando: python fil.py Effekt: kör programmet som finns i filen fil.py

Moduler Kommando: module add python/latest Effekt: Gör att du terminalfönstret kan använda senaste python versionen (just denna är dock dit lagd av res checkin kommandot) Vill man se till att viss modul alltid laddas kan man lägga till kommandot till filen.modules in din hemkatalog. Punkten framför filnamnet betyder att den bara synns med ls om man lägger till -a växeln. Filen går dock utmärkt att editera i emacs

Annat nyttigt För att skapa ny fil i emacs. Välj open file och skriv fil som inte finns. Filen skrivs dock inte till hårddisken förren du trycker på spara. Firefox är bra webläsare som du kan starta med firefox & Det finns fyra skrivbord man kan lägga sina fönster på. Klicka på ruta i nedre delen av skärmen för att byta skrivbord.

Python programmering Att skriva program är lätt...att skriva program som gör rätt sak är svårare...att veta säkert att programmet gör rätt sak är enormt svårt. Python program går snabbt att skriva men kan vara svårt att hitta fel i. Testar man saker noggrant hittar man dock alla fel och med python hinner man testa mycket.

Vilka byggblock finns i Program? Inmatning Att vi hämtar data från tangentbord eller filer Utmatning Skriver data till skärmen (eller något annat lämpligt) Variabler Lagrar data som programmet arbetar med Vilkorssatser Gör att vi kan välja vilken kod som ska köras beroende på vad som finns i en variabel Slingor Låtor oss göra en uppsättning rader i programmet flera gånger...dessutom metoder från funktionsbibliotek

Exempel på Inmatning till variabel variabel=input( Ange vad du vill lägga in i variabeln ) Input används för att ta emot inmatning och direkt översätta till siffra. Det som kallas variabel ovan får automagiskt lämplig sort för att kunna ta emot just en siffra. Hade man använt annan sorts inmatning hade variabel fått annan sort (mer om inmatning senare).

Villkorssatser + utmatning variabel=input( Ange vad du vill lägga in i variabeln ) if variabel > 0 : print Du angav ett positivt tal else: print Talet är troligen negativt... Om villkoret är sant körs den första print raden. Är det falskt körs det som står efter else (mer om villkorssatser senare)

Slingor variabel=input() while variabel < 30: print Ett nytt varv i slingan print variabel variabel = variabel +1 En slinga är en sorts villkorssats som körs om och om igen så länge villkoret är sant. Det som upprepas är de rader som följer som har samma inflyttning som raden som följer while raden. I python får man bara flytta in raden om föregående rad slutade med tecknet : (mer om slingor senare)

Utskrift till skärmen print Proxxi print är bra Proxxi är bra print Proxxi, print är bra Proxxi är bra

Kommentarer #Kommentarer används för att förklara obegripliga #kodrader. När programmet körs så hoppar python #över det som följer tecknet # #Det finns dock special fall...följande är bra att #skriva om man vill ha svenska tecken #coding: iso-8859-1 print Hejsan Världen

Variabelnamn Variabelnamn måste börja med en amerikansk bokstav, i resten av namnet får det finnas amerikanska bokstäver, siffror samt tecknet _ Viktigt att komma ihåg är att det skillnad på stora och små bokstäver. Variabelnamnen proxxi_data och Proxxi_data pekar alltså på olika variabler! Alltså använd ej å,ä eller ö i variabel namn!

Variabelsorter För att man ska kunna räkna på saker är vissa variabler inte bara tecken Siffor: *integer *long *float *complex number (imaginära enheten heter j) *String (ej ändringsbar) *List *Tuple (ej ändringsbar) *Dictionary (mappar söknycklar till dataposter)

Reserverad ord i Python Vissa ord ingår i själv Python syntaxen och får därför inte vara variabelnamn: and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, or, import, if, in, is, lambda, not, return, pass, print, raise, try, while

Omvandling mellan typer String till int: agetext = 20 age = int(agetext) Int till string: weekdays = 7 wdtext = str(weekdays)

import Vill man använda mer exotiska funktioner måste man ofta importera dem. De finns inte laddade i onödan för att inte göra programmer slöare än nödvändigt. För att få tillgång till sin() skriver man exempelvis from math import sin Enda sättet att finna vilken modul som har funktionen man vill ha, är slå upp detta i hjälp-filen eller leta på nätet.

sys Extra viktigt packet man kan importera är sys import sys sys.argv är en lista som innehåller det användaren skrev när han startade kommandot. På platsen sys.argv[0] ligger namnet på python programmet själv. Kanske inte världens roligaste men den behövs för att klara labben...

For slingor For tempvariabel in namn_lista: Satser man vill ska upprepas flera gånger Exempel for iter in [-1,'a',191, glurg ]: print Hurra, iter, Hurra -1 Hurra a Hurra 191 Hurra glurg for iter in range(4): print Hurra, iter, Hurra 0 Hurra 1 Hurra 2 Hurra 3

Operatorer +,-,* och / fungerar som vanligt för tal Om det är heltal ger 12 % 9 siffran 3 som svar (dvs det är modulo operatorn från matematiken) 2**5 returnerar 2*2*2*2*2 (dvs 32) * och + kan också användas på listor och strängar tal_lista=[1,2,3] 2*tal_lista 1 2 3 1 2 3 tal_lista=[1,2,3] tal_lista + [5,6] 1 2 3 5 6

Jämförelse operatorer Vill man jämföra två saker använder man någon av följande operatorer == (de innehåller samma sak) is (de pekar på samma sak)!= (de innehåller ej samma sak) not (de pekar ej på samma sak) < <= > >= (is och not används normalt ej)

If satser tal=input( Skriv ett tal ) if tal < 0: print Det var negativt elif tal <10: print Ett en-tal elif tal >100: print Det var stort else: print Har inget att säga om detta tal

Funktioner Vill man vid flera tillfällen i programmet göra samma sak så kan lägga den koden i en funktion. En funktion ser ut på följande vis. def exempel_funktion(indata,annan_indata): #här följer kod som gör de viktiga som funkionen #ska lösa. T.ex. säger om indata är ett primtal

Ett exempel program print Ange vad nuvrande euro kurs är:, eurokurs=input() euro=100/eurokurs print 100 kr är, print euro, print stycken euro exempelkörning: Ange vad nuvarande euro kurs är: 8.95 100 kr är 11.173184 stycken euro

Exempelprogram 2 #coding: iso-latin-1 def main(): losen = raw_input( Giv lösen! ) while losen!= All makt åt Tengil vår befriare : Losen = raw_input( Odugling, giv lösen! ) print( Du kan passera ) if name == main : Main() #Det är dock inte säkert ens dator låter dig skriva å,ä #och ö så att Python förstår vilket tecknet du menar

Var kommer mellanslagen ifrån? Den som är uppmärksam har märkt att när vi skriver ut något blir det mellanslag instoppade i utskiften...bra men inte alltid det man vill ha. day= 01 month= 05 print 2005-,month, -,day 2005 05 01 sys.stdout.softspace=false löser problemet men måste anges efter varje utskrift eftersom inställningen nollställs av utskrift. Om man ändå ska importera saker från sys kan sys.stdout.write() vara ett trevligare alternativ för att undvika mellanslagen.

Uppmaning Skaffa python kramaren och skriv massor av test program. Man lär sig genom att skriva program. Öva att lägga till fel i fungerande kod för att se vilken sorts fel ni får. Nyttja länkarna ni kan nå via kurshemsidan. De finns flera python böcker där ni kan ladda hem över nätet. Lycka till på labben