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

Relevanta dokument
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)

Ö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 C DD1316. Mikael Djurfeldt

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. Programmering. Programspråk

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

DD1314 Programmeringsteknik

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

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

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

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

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

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

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

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

Datorintro för elektro på Solaris

Föreläsning 2 Programmeringsteknik och C DD1316

Introduktion till datormiljön och Python

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

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

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

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

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

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

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

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

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

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

Sätt att skriva ut binärträd

F4. programmeringsteknik och Matlab

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

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

Använda Python Laboration 1 GruDat, DD1344

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

kommando -fl argument

Uppgifter teknik HT17 (uppdaterad v. 40)

729G04 Programmering och diskret matematik

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

HI1024 Programmering, grundkurs TEN

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

Laboration 1 Introduktion till Visual Basic 6.0

Användarhandledning Version 1.2

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

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

Grundläggande datalogi - Övning 1

Extramaterial till Matematik Y

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

Programmeringsteknik med C och Matlab

SMD 134 Objektorienterad programmering

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

729G04 Programmering och diskret matematik

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

Variabler och konstanter

v. 42 Python HT17 En introduktion Oscar Bergqvist

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

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

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

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

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

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

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

Besiktningsprotokollet

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

v. 43 Python HT17 En introduktion Oscar Bergqvist

Lathund för Linuxkommandon

JavaScript del 3 If, Operatorer och Confirm

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

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

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

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

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

729G04 Programmering och diskret matematik. Python 3: Loopar

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

Extramaterial till Matematik Y

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Tenta i Grundläggande programmering DD klockan

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

HI1024 Programmering, grundkurs TEN

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

En kort text om programmering i C.

Introduktion till programmering och Python Grundkurs i programmering med Python

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Den klassiska programmodellen. Introduktion till programmering D0009E. Föreläsning 11: Filer och undantag. Filsystem. Interaktiva program.

Föreläsning 18 Filer och avbildningar

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.

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

Transkript:

Tilpro Övning 1 2006 Per-Anders Staav (vikarierande) (föredrar att kallas Pa) Kan nås via epost: pasta@kth.se 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 ibland 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. Vanligtvis pekar ~<personsanvändarnamn>/ på hemkatlogen för personen. Vill man hitta sökvägen till ett konto men inte vet användarnamn för kan man pröva kommandot finger <persons namn> 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

man Kommando: man sort Effekt: visar en text sida med beskrivningar om hur kommandot sort 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 för detta terminal fönster.

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 terminalfönstret inte hänger sig Kommando: sm Effekt: Startar hjälpsystemet 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 i terminalfönstret kan använda senaste python versionen 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 från modulen firefox som du kan starta med firefox & Sima programmet som startas med kommandot sm finns i modulen sima 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, exceptif, 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)

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)

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

Önskad effekt av vårt första program exempelkörning: Ange vad nuvarande euro kurs är: 8.95 100 kr är 11.173184 stycken euro 8.95 är inmatat av användaren...talet 11.17 osv beräknas av programmet och stoppas in på rätt ställe

Ett första försök till lösning #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100/euro_kurs 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

Fixar radbrytning genom att lägga till komma efter vissa print rader #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100/euro_kurs 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

Om användaren ger euro kursen som heltal kommer inga decimaler #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100.0 / euro_kurs print 100 kr är, print euro, print stycken euro exempelkörning: Ange vad nuvarande euro kurs är: 8 100 kr är 12.5 stycken euro

Exempelprogram 2 #coding: iso-8859-1 svar=raw_input( Vad är lösen? ) while( svar!= All makt åt Tengil vår befriare ): print Odugling...ange lösen svar=raw_input() print Ja...då kan du passera #Ett logiskt skjysst program...fast det är inte #säkert att terminal vi kör på låter oss skriva #å,ä eller ö så att python förstår det

While vilkoret ligger alltid först... While inleds alltid med ett test...i verkligheten vill man ofta ha sekvensen fråga, inmatning och sist test. En lösning är att lägga till en extra fråga och inmatning innan while slingan startas. En annan möjlig lösning är att man lägger svar= dummy Sekvensen blir då egentligen test, fråga inmatning test, fråga...men det lider ju inte användaren av

Exempel program 3 def bedom(kulgrad): if kulgrad < 0: print Man kan väl inte ha negativt kul!!! elif (kulgrad == 0): print Det ändrar sig nog när du börjat elif kulgrad > 100: print Precis rätt attetyd elif kulgrad == 159: print En utskrift som aldrig skrivs ut else: print Bra, kan kanske bli bättre? print Hur pass kul tror du python är? bedom(int(raw_input( (Ange ett siffervärde): )))

Exempel program 4 #coding: iso-8859-1 #Mata in ett tal: 4 #1 2 3 4 #2 4 6 8 #3 6 9 12 #4 8 12 16 tal =input("mata in ett tal:") for i in range(1,(tal+1)): for j in range(1,(tal+1)): print (i*j), print

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. Lycka till på labben