Pythons standardbibliotek
|
|
- Gun Viktoria Hedlund
- för 6 år sedan
- Visningar:
Transkript
1 Pythons standardbibliotek Python 3 skall, enligt standarddokumenten ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta dokument har man garanti för att programmet fungerar oavsett vilken plattform man använder, Unix/Linux, Windows eller Mac. Vi skall titta på valda delar och har redan nämnt lite av det. En del extra bibliotek finns för t.ex. matematik. Sådana bibliotek måste man importera till sitt program när man vill använda dem. Det sker genom att man anger import math innan man anropar funktioner från bibliotektet DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
2 Standardfunktioner i Python, subjektivt urval abs(x) skickar tillbaka absolutvärdet av x om x är int eller float och magnituden om x är ett komplext tal ( x ) all(sekvens) Ger True om alla element i sekvensen ger True och False annars. D.v.s. all([1, 2, None]) ger False och (varning!) det gör all([1, 2, 0]) också! medan all([1, 2, 3]) ger True any(sekvens) Ger True om minst ett element i sekvensen ger True och False annars. bool([x]) OBS! notationen som säger att argumentet x är valfritt att skicka med. bool ger False om man inte skickar med ett argument eller man skickar med ett argument som (beräknas till) 0, False, tomma strängen eller någon tom sekvens eller tomma mängden. chr(i) Ger en sträng som är ett tecken lång och vars teckenkod är i. Hamnar man utanför [ ] får man ett fel (ValueError) DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
3 Standardfunktioner... Python complex([real[, imag]]) Ger ett komplext tal, 0j om inget argument skickas med. Om första arg är en sträng måste den gå att tolka som ett komplext tal och då får man inte skicka med ett andra arg. Andra arg får aldrig vara en sträng dict([arg]) Skapar ett dictionary, en samling med (nyckel:värde)-par. Se för en utförligare beskrivning. divmod(a, b) ger ett par (a // b, a % b) som resultat. Om man skickar med flyttal får man paret (q, a % b) där q = math.floor(a / b). float([x]) Om x skickas med måste det gå att tolka x som ett flyttal. Det kan vara en teckensträng, ett uttryck som ger ett tal tillbaka eller någonting som ger oändligheten eller nan som resultat. Det kan inte vara ett komplext tal. DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
4 Standardfunktioner... Python input([prompt]) Om man angivit en prompt så skrivs den ut utan radbyte. input läser sedan in hela den rad (utan radbrott) man skriver efter prompten och återsänder denna. int([number string[, base]]) Skapar en int (ett heltal) från ett tal eller en teckensträng om argumentet kan tolkas som ett tal. len(s) Återsänder antalet element i s om s är antingen en teckensträng, en tupel, en lista eller ett lexikon (dict). Om s är av annan typ får man ett TypeError list([iterable]) Återsänder en tom lista om man inte skickar med ett argument, annars försöker list tillverka en lista av iterable, t.ex.: list( hej ) [ h, e, j ] list((1, 2, 3)) [1, 2, 3] DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
5 Standardfunktioner... map(function, iterable,...) map tar en funktion (function) och applicerar funktionen på varje element i iterable. Om man har mer än en iterable måste funktionen ta ett argument för varje. Ett problem är att man får ett map -objekt tillbaka och inte samma typ av iterable som man en gång började med. Man kan naturligtvis konvertera sultatet till något användbart,ex.: in_x = input( mata in ett antal tal ) tmp_x = in_x.split( ) x = list(map(int, tmp_x)) Med inmatningen får in_x värdet och x värdet [1, 2, 3] max(x) Om x är en sekvens av något slag skickar max(x) ut det största värdet. Men max() kan mer än så: max([1, 2, 3] ger 3 max( a, b, c ) ger c min(x) Motsvarar max(x) men skickar ut minsta värdet i x DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
6 Standardfunktioner... Python ord(c) Om c är en teckensträng med ett tecken i så återsänds teckenkoden för c (c s plats i unicode-tabellen print([x,...], *, sep=, end= \n, file=sys.stdout) har vi redan pratat om en hel del. range([start], stop[, step]) skapar numeriska intervall, mest använda i for-loopar. list(range(5)) ger [0, 1, 2, 3, 4] list(range(1, 7, 2)) ger [1, 3, 5] round(x[, n]) round(3.5) ger 4 men med ett extra argument kan round() avrunda till ett visst antal decimaler. round( , 6) ger Kan ibland ge konstiga resultat eftersom bråkdelar oftast inte kan representeras exakt. round(round(2.675, 2) ger t.ex DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
7 Standardfunktioner... Python set([x]) Skapar en mängd av x om det går. Enstaka värden fungerar inte utan det måste vara en sekvens av något slag. Varianten frozenset([x]) skapar en konstant mängd. str([x]) Skapar en strängrepresentation av x. Det finns möjlighet att specificera kodning sum(x[, start]) summerar start och elementen i x. Utelämnas start fungerar det som om start = 0 tuple([x]) Skapar en tupel (en ordnad sekvens) av x om det går. Kan inte ändras när den väl är skapad. DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
8 Operatorer på tal Python Det finns flera standardfunktioner men vi pratar om dem då vi stöter på dem. Om man vill ha mer än de vanligaste matematiska operatorerna måste man importera math-biblioteket. De vanligaste operatorerna är: x + y x - y x * y x / y x // y x % y -x abs(x) c.conjugate() vanlig division heltalsdivision resten vid division konjugatet av (komplexa talet) c divmod(x, y) paret (x // y, x % y) x ** y x y DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
9 Sanningsvärden Python Vilket objekt som helst kan användas som sanningsvärde. Då betraktas som osant (False) dels konstanterna None och False och dels alla värden som i någon mening betyder noll eller tom, d.v.s. alla numeriska 0, tomma sekvenser och lexikon (dictionaries). Alla andra värden betraktas som sanna (True) De booleska operatorerna or, and och not fungerar som vanliga men är kortslutande : x or y x and y not x if x then true else false if x then y else false if x then true else false DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
10 Jämförelser Python De aritmetiska jämförelseoperatorerna fungerar för alla ordnade typer (alltså inte för komplexa tal): < strikt mindre än <= mindre än eller lika med > strikt större än >= större än eller lika med == lika med!= skilt ifrån DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
11 Exempel: Fibonaccitalen Python Programmerade vi i scheme som (översatt till Python 3) def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) n = input( n? ) print (fib(n)) Men det går inget vidare för stora n (testa inte, python kommer frysa ) DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
12 En svansrekursiv variant Python def fib(n, f1, f2): if n == 0: return f1 elif n == 1: return f2 else: return fib(n-1, f2, f1+f2) n = input( n? ) print (fib(n, 0, 1)) En stor vinst men ännu bättre att eliminera rekursionen helt och utnyttja Pythons tupler: DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
13 Exempel Python def fib(n): if n == 0: return 0 if n == 1: return 1 for i in range(1, n): f1, f2 = f2, f1 + f2 return f2 n = input( n? ) print (fib(n)) DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
14 Lite påpekanden, varningar och tips Kontroll av att indata är korrekta kan man få genom att initiera till None Ex.: i = None count = 0 while count < 3 and not i: try: count += 1 x = input( Mata in ett heltal: ) i = int(x) except ValueError: print(" " + x + " är inte ett heltal!") if not i: print("sorry 3 felinmatningar! Bye!") exit()... Gör inte så om du testkör i IDLE, eftersom du då avslutar IDLE DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
15 Exempel med lite påpekanden och varningar 1 Vanligt att man försöker hantera globala variabler men: globalx = 0.0 dictx = { x : 0} def change(globalx, d): print( enter change:, globalx, d[ x ]) globalx = 3.0 d[ x ] = 3.0 print( exit change:, globalx, d[ x ]) return print( before change:, globalx, dictx[ x ]) change(globalx, dictx) print( after change:, globalx, dictx[ x ]) before change: enter change: exit change: after change: Så vissa värden påverkas men inte andra. Lär er vilka! DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
16 Exempel med lite påpekanden och varningar... 2 globalx = 0.0 dictx = { x : 0} def change(): global globalx, dictx print( enter change:, globalx, dictx[ x ]) globalx = 3.0 dictx[ x ] = 3.0 print( exit change:, globalx, dictx[ x ]) return print( before change:, globalx, dictx[ x ]) change() print( after change:, globalx, dictx[ x ]) before change: enter change: exit change: after change: Hmmm... DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
17 Exempel med lite påpekanden och varningar... 3 Men Pythons funktioner kan sända ut mer än ett värde (som en tupel): x, y, z = 0.0, 0.0, 0.0 def change(x, y, z): print( enter change:, x, y, z) x, y, z = 3.0, 4.0, 5.0 print( exit change:, x, y, z) return x, y, z print( before change:, x, y, z) x, y, z = change(x, y, z) print( after change:, x, y, z) before change: enter change: exit change: after change: DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
18 Newton-Raphson i Python EPS = 10e-8 def main(): xin = input( Ange initial gissning på x: ) try: x = float(xin) except ValueError: print(" " + xin + " är inte ett tal!") else: x, c = newton(x, f) print( Fann nollställe, x =, x, efter, c, iterationer ) def f(x): return x * x - 3 * x - 3 def fprim(f, x): return float((f(x + EPS) - f(x - EPS)) / (2 * EPS)) def good_enough(x, nextx): return abs(x-nextx) < EPS DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
19 Newton-Raphson i Python... def next_x(x, f): return float(x - f(x) / fprim(f, x)) def newton(x, f, count): nextx = next_x(x, f) if count < 50 and not good_enough(x, nextx): return newton(nextx, f, count + 1) return nextx, count main() Men Python-funktioner kan skicka tillbaka funktioner DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
20 Newton-Raphson i Python... Ändra def main(): xin = input( Ange initial gissning på x: ) try: x = float(xin) except ValueError: print(" " + xin + " är inte ett tal!") else: fp = fprim(f) x, c = newton(x, f, fp, 0) print( Fann nollställe, x =, x, efter, c, iterationer ) def f(x): return x * x - 3 * x - 3 def fprim(f): def fp (x): return float((f(x + EPS) - f(x - EPS)) / (2 * EPS)) return fp DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
21 Newton-Raphson i Python... def good_enough(x, nextx): return abs(x-nextx) < EPS def next_x(x, f, fprim): return float(x - f(x) / fprim(x)) def newton(x, f, fp, count): nextx = next_x(x, f, fp) if count < 50 and not good_enough(x, nextx): return newton(nextx, f, fp, count + 1) return nextx, count main() DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
22 Newton-Raphson i Python... Men vi kan också eliminera rekursionen: def newton(x, f, fp): count = 0 nextx = next_x(x, f, fp) while abs(x-nextx) > EPS and count < 50: x = nextx nextx = next_x(x, f, fp) count += 1 return nextx, count och måste då naturligtvis ändra lite i main Eftersom Python inte kan eliminera svansrekursion är det alltid bäst att hitta iterativa lösningar. DA2001 (Föreläsning 11) Datalogi 1 Hösten / 22
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merRepetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python
Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python
Läs merSpråket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Läs merFö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 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
Läs mer729G04 Programmering och diskret matematik. Python 3: Loopar
729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel
Läs merFöreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen
Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler, datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande
Läs merFöreläsning 2 Programmeringsteknik och C DD1316
Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer
Läs merFöreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen
Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler,datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs merDD1314 Programmeringsteknik
Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:
Läs merFöreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering
Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs mer1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar
Läs merRepetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet
Repetition Introduktion Repetition i Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde
Läs merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs mer729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer
Läs merIntroduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Läs merDD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser
Läs merTeori: Variabler En variabel har fyra grundläggande egenskaper: Namn, Typ, Värde och Synlighet.
Teori: Variabler En variabel har fyra grundläggande egenskaper: Namn, Typ, Värde och Synlighet. NAMNET måste följa den namngivningsstandard som finns. Vanligtvis måste ett variabelnamn inledas med en bokstav,
Läs merTentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
Läs merDatalogi för E Övning 3
Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna
Läs merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merIntroduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Läs merSelektion och iteration
Selektion och iteration TDDD73 Funktionell och imperativ programmering i Python Föreläsning 6 Peter Dalenius Institutionen för datavetenskap 2014-09-15 Översikt Hur utformar man villkor för framför allt
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merSammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111
/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111 0 # coding : latin Sammanfattning Gick igenom listor, dictionary, felhantering, strängjämförelser, split(), rstrip()
Läs merPascal... Pascal. Pascal... Pascal...
... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merKurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for
Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har
Läs merProcedurer och villkor
Procedurer och villkor (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between 3 2 5) #f DA2001
Läs merPascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt
Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merProcedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet
Procedurer och villkor Rekursiva procedurer (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between
Läs merPython. 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.
Moduler 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. Vi har också ofta behov av att skapa överblick i våra program. Som ett
Läs merDatalogi, grundkurs 1
Datalogi, grundkurs 1 Fiktiv Tentamen Lösningsförslag och kommentarer 1. Lösningsförslaget nedan förutsätter ingenting om filens innehåll och är alltså mer generell än nödvändigt: alfa= ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ
Läs merGrundläggande datalogi - Övning 1
Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b
Läs merFöreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
Läs merFöreläsning 9 Exempel
Föreläsning 9 Exempel Intervallhalveringsmetoden DA2001 (Föreläsning 9) Datalogi 1 Hösten 2013 1 / 24 Föreläsning 9 Exempel Intervallhalveringsmetoden Newton-Raphsons metod DA2001 (Föreläsning 9) Datalogi
Läs merFiler. DA2001 (Föreläsning 16) Datalogi 1 Hösten / 19
Filer När ett program behöver spara data för senare användning måste dessa data antingen sparas i en databas eller skrivas på en sekundärminnesfil Sådan skrivning på fil är inte mer komplicerad än att
Läs merIntroduktion till programmering SMD180. Föreläsning 8: Listor
Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal
Läs merGrundläggande databehandling ht 2005
Grundläggande databehandling ht 2005 Programmering Filip Salomonsson 1 Idag Program, programmering Pythonintro 2 Programspråk Lågnivåspråk (maskinspråk); instruktioner på datorns
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merPseudoslumptal / slumptal. Pseudoslumptal... Slumptal exempel. Slumptal exempel
Pseudoslumptal / slumptal Pseudoslumptal... Slump existerar inte i datorns välordnade miljö så slumpartade tal finns naturligtvis inte heller Men man behöver slump i vissa försök och i simuleringar så
Läs mer729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering
Läs merPlanering av ett större program, del 2 - for och listor. Linda Mannila
Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)
Läs merImperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,
Imperativ och Funktionell Programmering i Python #TDDD73 Fredrik Heintz, IDA fredrik.heintz@liu.se @FredrikHeintz Översikt Repetition: Satser och uttryck Variabler, datatyper, synlighet och skuggning Upprepning,
Läs merErfarenheter från labben
Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?
Läs mer729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer
729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser
Läs merGrundläggande Datalogi
s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering
Läs merOrdlistor, filhantering och ut på webben. Linda Mannila 20.11.2007
Ordlistor, filhantering och ut på webben Linda Mannila 20.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Funktioner och moduler
Läs merTDDE44 Programmering, grundkurs
TDDE44 Programmering, grundkurs Föreläsning 5 Jody Foo, jody.foo@liu.se Föreläsning 5 & 6 Laboration 3: En egen pokedex data från webben Ny datatyp: dictionary Mer om dataabstraktion Nästlade datastrukturer
Läs merLäsöversikt. Föreläsningar 2-6. Genomförande av laborationer
Läsöversikt LP Part I Part IV, kap 18 PL: kap 1, 2 (Sem 1), 3 (Sem 3), 5.1-5.3, 5.8 intro, 6.1-6.3, 7.1-7.3, 8.1-8.3, 9.1-9.2 Wikipedia kan användas som stöd för PL-avsnitten. Föreläsningar 2-6 Genomförande
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merMMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Läs merF5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Läs merIckelinjära ekvationer
Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod
Läs merVariabler och konstanter
Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merHur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Hur man programmerar TDDC66 Datorsystem och programmering Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2014-09-05 Översikt Problemlösning: Hur ska man tänka? Datatyper Listor (forsätter
Läs merBlock 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?
Block 5: Ickelineära ekvationer Löpsedel: Icke-lineära ekvationer Varför är det svårt att lösa ickelineära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod Noggrannhet/stoppvillkor
Läs merFöreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...
Föreläsning 9 Intervallhalveringsmetoden Intervallhalveringsmetoden Newton-Raphsons metod Mer om rekursion Tidskomplexitet Procedurabstraktion Representation Bra om ni läst följande avsnitt i AS: Procedures
Läs merDen klassiska programmodellen. Introduktion till programmering D0009E. Föreläsning 11: Filer och undantag. Filsystem. Interaktiva program.
Den klassiska programmodellen Introduktion till programmering D0009E indata Hur kan data överleva en programkörning? utdata indata utdata Föreläsning 11: Filer och undantag Program A Program B Filsystem
Läs merC++ - En introduktion
C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna
Läs merUppgifter teknik HT17 (uppdaterad v. 40)
Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det
Läs merAlla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Läs merHashing Bakom kulisserna på Pythons dictionary
Hashing Bakom kulisserna på Pythons dictionary Innehåll Några förenklingar Leta i listor Olika ideer om hashing I python förr Och nu DA2001 (Föreläsning 20) Datalogi 1 Hösten 2018 1 / 32 Några förenklingar
Läs merExempel på ett litet Ada-program
Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift
Läs mer729G04 Programmering och diskret matematik. Föreläsning 7
729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt
Läs merFöreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor
Föreläsning 4 Programmeringsteknik och Matlab DD1312, tupler, strängar och forslingor Villkor kan kombineras med operatorerna and,or,not Exempel: if pris=100: print Telefonfynd! A B A
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merIntroduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries
D 0 0 0 9 E Introduktion till programmering D0009E Föreläsning 9: Tupler och dictionaries 1 D 0 0 0 9 E Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser
Läs merPlatser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Läs merTDP002 - Imperativ programmering
TDP002 - Imperativ programmering Underprogram Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Underprogram Parametrar Returvärden Räckvidd och skuggning
Läs merPython. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!
Python Mer om datatyper Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam! Datatyper Dictionaries - {1: camelot,2: shrubbery } Tupler - (1,2,3,) 1 Lite om strängar Strängar innehåller specialtecken
Läs merDataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap
Dataabstraktion TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2013-11-12 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merFörkortning och förlängning av rationella uttryck (s. 27 Origo 3c)
1 Print 1 Algebraiska 2 Variabler 1 Algebraiska 3 Input 1 Algebraiska 4 For 1 Algebraiska uttryck, Rationella uttryck 1 Algebraiska uttryck, Gränsvärden Förkortning och förlängning av rationella uttryck
Läs merTentamen. 5DV105, Programmeringsteknik med Python och Matlab 5DV106, Programmering i Python. 27 oktober 2009
Sid: 1(8) Tentamen 5DV105, Programmeringsteknik med Python och Matlab 5DV106, Programmering i Python Examinator: Skrivtid: 9 13 Hjälpmedel: Inga böcker Tentamen har två delar. Första delen består av tre
Läs merLaboration: Whitebox- och blackboxtesting
Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska
Läs merIntroduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med
Läs merIteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
Läs merFöreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.
Föreläsning 4 meringsteknik DD1310 Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None try och except är reserverade ord som används för hantering av exekverings fel.
Läs merIntroduktion till programmering SMD180. Föreläsning 7: Strängar
Introduktion till programmering Föreläsning 7: Strängar 1 1 En sammansatt datatyp En sträng är ett enhetligt värde, som kan lagras i variabler och fungera som operand eller funktionsargument en datastruktur
Läs merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs merHashing Bakom kulisserna på Pythons dictionary
Hashing Bakom kulisserna på Pythons dictionary Innehåll Några förenklingar Olika ideer om hashing I python förr Och nu DA2001 (Föreläsning 20) Datalogi 1 Hösten 2018 1 / 32 Några förenklingar I början
Läs merHashing Bakom kulisserna på Pythons dictionary. Leta i listor Osorterade listor. Leta i listor Sorterade listor
Hashing Bakom kulisserna på Pythons dictionary Några förenklingar I början av den här diskussionen kommer jag titta enbart på listor som innehåller numeriska värden. Innehåll Några förenklingar Olika ideer
Läs merFunktionell programmering DD1361
Funktionell programmering DD1361 Tupler Två eller fler (men ändligt) antal element. Elementen kan vara av olika typer. Ex: (1,2) :: (Integer, Integer) (( 2, hejsan ), True) ::? Tupel med två element ->
Läs merTDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merAlgoritmer och datastrukturer H I HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T
Algoritmer och datastrukturer H I 1 0 2 9 HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T Föreläsning 1 Inledande om algoritmer Rekursion Stacken vid rekursion Rekursion iteration Möjliga vägar
Läs merObjektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
Läs merRekursion och induktion för algoritmkonstruktion
Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av
Läs merData, typ, selektion, iteration
Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens
Läs merPython Första steg. LGMA20, L9MA20 VT 2019 Jonathan Nilsson, Laura Fainsilber
Python Första steg LGMA20, L9MA20 VT 2019 Jonathan Nilsson, Laura Fainsilber 1 Introduktion till Python Programmering med Python Python är ett populärt programmeringsspråk som används både inom industrin
Läs merIntroduktion till Haskell
Introduktion till Haskell Elias Riedel Gårding NMA11, Teknisk Fysik (KTH) 2014 18 februari 2018 Elias Riedel Gårding (NMA11, F14) Introduktion till Haskell 18 februari 2018 1 / 29 Om Haskell Historik 1927:
Läs mer