Övning 0. Python för den som kan MATLAB. Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt:

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

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

729G04 Programmering och diskret matematik. Python 3: Loopar

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?

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

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

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

Övning 1 - Abstrakta datatyper

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

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

Introduktion till programmering SMD180. Föreläsning 7: Strängar

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.

Småprat Small talk (stressed vowels are underlined)

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

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

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Preschool Kindergarten

Grundläggande datalogi - Övning 1

Strängar. TDDD64 Programmering i Python Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

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

Styrteknik: Binära tal, talsystem och koder D3:1

Övning 1. Abstrakta datatyper. 1. Stacken. class Stack: """A representation of a last-in-first-out (LIFO) stack of objects."""

Föreläsning 2 Programmeringsteknik och C DD1316

Good Stuff 3 Textbook

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

DD1314 Programmeringsteknik

Discovering!!!!! Swedish ÅÄÖ. EPISODE 6 Norrlänningar and numbers Misi.se

Använda Python Laboration 1 GruDat, DD1344

Listen to me, please!

Funktioner. Linda Mannila

Datalogi, grundkurs 1

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09

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

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM


Variabler och konstanter

Repetition C-programmering

Exempelsamling Assemblerprogrammering

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Ordlistor, filhantering och ut på webben. Linda Mannila

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Att skriva till och läsa från terminalfönstret

Calculate check digits according to the modulus-11 method

Grundläggande Datalogi

Support Manual HoistLocatel Electronic Locks

Introduktion C-programmering

Sekvensdatatyper, ASCII och chiffer. Linda Mannila

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Read, work and talk! - och Lgr 11

Writing with context. Att skriva med sammanhang

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

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

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Laboration: Whitebox- och blackboxtesting

Introduktion till programmering SMD180. Föreläsning 9: Tupler

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

Sätt att skriva ut binärträd

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

Pythons standardbibliotek

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

729G04 Programmering och diskret matematik


Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 15 August 2016, 8:00-12:00. English Version

Övning 2. (Länkade) Listor, noder

Isometries of the plane

Konvertering från sträng. Winstrand Development

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

Module 6: Integrals and applications

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Datalogi för E Övning 3

Karlstads Universitet, Datavetenskap 1

Installera Anaconda Python

BOENDEFORMENS BETYDELSE FÖR ASYLSÖKANDES INTEGRATION Lina Sandström

Programmeringsteknik med C och Matlab

Objektorienterad programmering Föreläsning 5

SVENSK STANDARD SS-EN ISO 19108:2005/AC:2015

Tentamen i Introduktion till programmering

denna del en poäng. 1. (Dugga 1.1) och v = (a) Beräkna u (2u 2u v) om u = . (1p) och som är parallell

Erfarenheter från labben

Introduktion till programmering SMD180. Föreläsning 8: Listor

samhälle Susanna Öhman

Lektion 3. Anteckningar

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

Tentamen. 5DV105, Programmeringsteknik med Python och Matlab 5DV106, Programmering i Python. 27 oktober 2009

12.6 Heat equation, Wave equation

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

Beijer Electronics AB 2000, MA00336A,

Funktionens deklaration

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

Workplan Food. Spring term 2016 Year 7. Name:

Grammar exercises in workbook (grammatikövningar i workbook): WB p 121 ex 1-3 WB p 122 ex 1 WB p 123 ex 2

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

Transkript:

Per Sedholm DD1320 (tilda11) 2011-08-31 Övning 0 Python för den som kan MATLAB Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt: print "a", "b", "c" print "a" "b", "c" print "a", ("b", "c") Vad är rätt? Antal argument till print? Datatyp för dem? Känna igen felmeddelanden 1. Inmatning, utskrift!/usr/bin/python -*- coding: utf-8 -*- Hello world namn = raw_input("vad heter du? ") print "Hej", namn print "Hej " + namn Vad heter du? Terry G Hej Terry G Hej Terry G 2. Läsa tal, if-else-sats, villkor, teckenkodningskommentar -*- coding: utf-8 -*- or iso-8859-1 Maxberäkning 1 num1 = input("ge första talet: ") num2 = input("ge andra talet: ") if num1 > num2: print num1, "är störst!" print num2, "är störst!" Note: In other languages: (num1 > num2)? num1 : num2 print num1 if (num1 > num2) else num2, "är störst!" print (lambda:num2, lambda:num1)[num1 > num2](), "är störst!" Ge första talet: 8 Ge andra talet: 5 8 är störst! 8 är störst! 8 är störst! 1

3. While-slinga, typkonvertering sträng heltal Maxberäkning 2 max = input("ge första talet: ") NB: bad name (builtin function) ans = raw_input("ge ett tal till (avsluta med Enter): ") while ans!= "": tal = int(ans) if tal > max: max = tal ans = raw_input("ge ett tal till (avsluta med Enter): ") print "Störst var", max Ge första talet: 8 Ge ett tal till (avsluta med Enter): 5 Ge ett tal till (avsluta med Enter): 13 Ge ett tal till (avsluta med Enter): 7 Ge ett tal till (avsluta med Enter): 18 Ge ett tal till (avsluta med Enter): Störst var 18 $ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> max <built-in function max> >>> type(max) <type builtin_function_or_method > >>> help(max) Help on built-in function max in module builtin : max(...) max(iterable[, key=func]) -> value max(a, b, c,...[, key=func]) -> value With a single iterable argument, return its largest item. With two or more arguments, return the largest argument. Bland övriga funktioner finns: dir (visa variabler), locals (visa variabler och värden). 4. Aritmetik, typkonvertering heltal flyttal Average of three numbers num1 = input("first number: ") num2 = input("second number: ") num3 = input("third number: ") sum = num1 + num2 + num3 n = 3 avg1 = float(sum)/n print "Average:", avg1 avg2 = sum/n print "Average:", avg2 First number: 5 Second number: 3 Third number: 2 Average: 3.33333333333 Average: 3 Pythons numeriska datatyper: int, float, long, complex. 2

5. Importera modul, slumptal Guessing import random ans = random.randint(1,10) guess = input("guess a number between one and ten: ") while guess!= ans: guess = input("wrong, try again: ") print "Correct!" 6. Lista, slumpa ur lista, sammansatt ord Word guess: Choose random word, count guesses. import random instruments = ["violin", "flute", "bassoon"] answ = random.choice(instruments) guess = raw_input("five guesses: What instrument am I thinking of? ") n = 1 while guess!= answ and n < 5: guess = raw_input("wrong, try again: ") n = n+1 if n <= 5: NB: spot error? print "Brilliant, you managed in only", n, "attempts!" print "Sorry, you couldn t guess in five attempts." 7. Strängar, indexering, slicing, funktionen len, operatorn in, operatorn + för strängkonkatenering Girl s name: Convert a name to girl form. Assume the given name is a boy s name, remove the last letter (if a vowel), or the last two letters (otherwise). Finally, add "elle" at the end. Note: using Swedish vowels: AEIOUYÅÄÖ not English: AEIOU(YW) name = raw_input("vad heter du? ") n = len(name) print "Ditt name har", n, "bokstäver." last = name[n-1] if last in "aeiouyåäö": name = name[:-1] name = name[:-2] girlname = name + "elle" print "Ditt flickname är", girlname Vad heter du? Per Ditt name har 3 bokstäver. Ditt flickname är Pelle (Hmmmm...) 3

Ang. slicing Notera att ordningen mellan start/slut/steg är annorlunda än MATLAB: s = hello world s[1:-1:2] start : slut [: steg] el ol 8. Strängmetoder, listor, for-slingor Translate to Yoda Speak. "You have much to learn." -> "Much to learn, you have." Note: proper Yoda Speak changes all sentences to OSV (object-subject-verb). http://en.wikipedia.org/wiki/object%e2%80%93subject%e2%80%93verb sent = raw_input("sentence: ") n = len(sent) end = sent[n-1] remove punctuation sent = sent[:-1] lst = sent.split() print lst[2].capitalize(), for ordet in lst[3:]: print ordet.lower(), print ",", for ordet in lst[0:2]: print ordet.lower(), print end Sentence: This is my home! My home, this is! TODO: rewrite so there are no spaces around the comma. 9. Funktioner, parametrar, returvärden, softspace Translate to Yoda Speak -- now with functions import sys def words(sentence): n = len(sentence) end = sentence[n-1] sentence = sentence[:-1] lst = sentence.split() See: help("".split) return lst, end def new_order(lst, end): print lst[2].capitalize(), for wrd in lst[3:]: print wrd.lower(), sys.stdout.softspace = 0 only affects next print call print ",", See: type(sys.stdout); help(file) for wrd in lst[0:2]: print wrd.lower(), sys.stdout.softspace = 0 print end sentence = raw_input("sentence: ") lst, punctuation = words(sentence) new_order(lst, punctuation) Sentence: This is my home! My home, this is! 4

Ang. softspace import sys print "first", sys.stdout.softspace=false print "second", print "third" firstsecond third sys.stdout.write("first") sys.stdout.write("second") sys.stdout.write("third") firstsecondthird 10. Listmetoden append, kopiering av lista Copy a list by value or by reference def copy(lst): cp = [] for el in lst: cp.append(el) return cp Note: could use variable name lst, it wouldn t be the same as above l = [1, 7, 10, 13, 19, 23, 28] "happy numbers" cp1 = l cp2 = copy(l) cp3 = l[:] print "-" * 40 print "l = ", l print "cp1 = ", cp1 print "cp2 = ", cp2 print "cp3 = ", cp3 cp1[3] = -1 cp2[4] = -2 cp3[5] = -3 print "-" * 40 print "l = ", l print "cp1 = ", cp1 print "cp2 = ", cp2 print "cp3 = ", cp3 ---------------------------------------- l = [1, 7, 10, 13, 19, 23, 28] cp1 = [1, 7, 10, 13, 19, 23, 28] cp2 = [1, 7, 10, 13, 19, 23, 28] cp3 = [1, 7, 10, 13, 19, 23, 28] ---------------------------------------- l = [1, 7, 10, -1, 19, 23, 28] cp1 = [1, 7, 10, -1, 19, 23, 28] cp2 = [1, 7, 10, 13, -2, 23, 28] cp3 = [1, 7, 10, 13, 19, -3, 28] 5