TDP002 - Imperativ programmering

Relevanta dokument
TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

TDIU01 (725G67) - Programmering i C++, grundkurs

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

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

DD1314 Programmeringsteknik

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

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

TDP002 - Imperativ programmering

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

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

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

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

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

Text och strängindexerade fält Grundkurs i programmering med Python

JAVAUTVECKLING LEKTION 7

Ordlistor, filhantering och ut på webben. Linda Mannila

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

Användarhandledning Version 1.2

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

TDIU01 - Programmering i C++, grundkurs

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

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

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

Uppgifter teknik HT17 (uppdaterad v. 40)

Strängar. Elektronikcentrum i Svängsta AB

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Att hämta organisationers publikationsposter ur DiVA

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Repetition av filer Grundkurs i programmering med Python

C++ - En introduktion

Tentamen i Introduktion till programmering

Övningsuppgifter kapitel 8

Uppgifter till praktiska tentan, del A. (7 / 27)

Filer. DA2001 (Föreläsning 16) Datalogi 1 Hösten / 19

kl Tentaupplägg

Chapter 3: Using Classes and Objects

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

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Enkla datatyper minne

TDP002 - Imperativ programmering

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Tecken och strängar i Java

Funktioner. Linda Mannila

TDDD78, TDDE30, 729A Tecken och strängar med och utan Java

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

Uppgift 1 ( Betyg 3 uppgift )

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

kl Tentaupplägg

Programmering i C++ EDA623 Strömmar och filer. EDA623 (Föreläsning 9) HT / 19

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

TDIU01 - Programmering i C++, grundkurs

Inledande programmering med C# (1DV402) 85/2=42. OBS! Heltal 1 (13)

Hantering av Exceldata vid import/export till/från utbetalningsansökan

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

TDIU Regler

Övning 1 - Abstrakta datatyper

Föreläsning 18 Filer och avbildningar

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Laboration 1 Introduktion till Visual Basic 6.0

Datalogi, grundkurs 1

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Uttryck, satser och strömhantering

Programmering för språkteknologer I, VT2012. Rum

En kort text om programmering i C.

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

TANA17 Matematiska beräkningar med Matlab

Tentamen Programmeringsteknik för BME, C, D, E, F, I, N & Pi

Tentamen ges för: Tentamensdatum: Tid:

Variabler och konstanter

TENTAMEN OOP

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

kl Tentaupplägg

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

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Program. Kapitel make Program Interpreterande och kompilerande program

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

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

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

Regler. Betygssättning

Tentamen, EDAA20/EDA501 Programmering

Föreläsning 13. In- och utmatning

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

Programmeringsteknik med C och Matlab

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

Tentaupplägg denna gång

Tecken & Strängar. Kapitel 7

F2 Datarepresentation talbaser, dataformat och teckenkodning

Transkript:

TDP002 - Imperativ programmering Strängar och IO Eric Elfving Institutionen för datavetenskap

1 I/O - Inläsning och Utskrift Inläsning Typomvandling Utskrift Strängformatering 2 Teckenkodning 3 Externa filer

1 I/O - Inläsning och Utskrift Inläsning Typomvandling Utskrift Strängformatering 2 Teckenkodning 3 Externa filer

3 / 19 Inläsning Program som gör beräkningar rätt är bra, program där användaren får styra är ofta bättre. Därför är det bra att låta användaren mata in data. I Python finns det "ett" sätt att låta användaren mata in data, input input ger alltid en sträng som resultat Till input kan man skicka en sträng som ledtext till användaren

4 / 19 Inläsning input name = input('mata in ditt namn: ') print("hej " + name) Mata in ditt namn: Sam Hej Sam price = input('mata in pris: ') price = int(price) products = input('antal produkter: ') products = int(products) inventory = price * products print('totalt värde:', inventory) Mata in pris: 12 Antal produkter: 3 Totalt värde: 36

5 / 19 Typomvandling Funktionerna int och float omvandlar en sträng till ett heltal respektive ett reellt tal Båda funktionerna kräver att strängen endast innehåller ett numeriskt värde (på rätt format) På samma sätt kan str omvandla ett värde till en strängrepresentation.

6 / 19 Utskrift >>> print(1,2,3) 1 2 3 >>> print(1,2,3,... sep='x',... end=' slut!') 1x2x3 slut! print används oftast för att skriva ut saker på skärmen print kan ta flera värden och skriver ut dem separerade med mellanslag och avslutar med ny rad ('\n') Om man vill kan detta ändras med sep och end

7 / 19 Strängformatering Funktionen format print är bra på att skriva ut saker men ibland vill man att det ska se snyggare ut Då är str.format() bra att ha Man kan formatera strängar på flera sätt enligt http: //docs.python.org/3/library/string.html#formatspec Här tar vi upp en kortvariant Liknar printf-språket en del men är väldigt sofistikerat! Tar formatbeskrivning på formen {namn:format}

8 / 19 Strängformatering name = input('förnamn: ') surname = input('efternamn: ') message = 'Hej {n} {s}!'.format(n=name,s=surname) print(message) name = input('förnamn: ') surname = input('efternamn: ') message = 'Hej {} {}!'.format(name,surname) print(message) Förnamn: Kalle Efternamn: Nilsson Hej Kalle Nilsson!

9 / 19 Strängformatering Formatering av tal >>> pi = 3.141592 # eller math.pi >>> print('{}'.format(pi)) 3.141592 >>> print('{:.2f}'.format(pi)) 3.14 >>> print('{:06.3f}'.format(pi)) 03.142

10 / 19 Strängformatering Formatering av tal print('tabell över tal i olika talbaser\n' + '='*32) print(' Bin Oct Dec Hex') for num in range(17): print('{0:5b}{0:5o}{0:5d}{0:5x}'.format(num)) Tabell över t a l i o l i k a t a l b a s e r ================================ Bin Oct Dec Hex 0 0 0 0 1 1 1 1 10 2 2 2 11 3 3 3 100 4 4 4 101 5 5 5 110 6 6 6 1 1 1 7 7 7 1000 10 8 8 1001 11 9 9 1010 12 10 A 1011 13 11 B 1100 14 12 C 1101 15 13 D 1110 16 14 E 1 1 1 1 17 15 F 10000 18 16 10

11 / 19 Strängformatering Formatering av tal print('tabell över tal i olika talbaser\n' + '='*32) print(' Bin Oct Dec Hex') formatstr = '' for f in 'bodx': formatstr += '{{0:5{c}}}'.format(c=f) for num in range(17): print(formatstr.format(num))

1 I/O - Inläsning och Utskrift Inläsning Typomvandling Utskrift Strängformatering 2 Teckenkodning 3 Externa filer

13 / 19 Teckenkodning Teckenkodningen är kopplingen mellan det tecken man ser på skärmen och hur det tecknet lagras i datorns minne. "Vanliga" tecken såsom de vi har på tangentbordet ryms gott och väl i en byte (det räcker ju till hela 256 tecken). När webben blev större blev det jobbigare att klara sig med endast 256 tecken. Bara japanerna har över 3000 tecken som de tycker man bör kunna efter grundskolan (I ett av deras skriftspråk).

14 / 19 Teckenkodning Unicode en global teckenmängd utan specificerad representation. I Python version >= 3 är alla strängar kodade i UTF-8. Om du vill ha ett tecken som inte finns på tangentbordet går det att kopiera från tabeller 1 I python kan man även använda sig av teckenkoden: '\u00ae' alternativt namnet: '\N{registered sign}' 1 Se http://www.unicode.org/charts/

1 I/O - Inläsning och Utskrift Inläsning Typomvandling Utskrift Strängformatering 2 Teckenkodning 3 Externa filer

16 / 19 Filhantering with open('minfil.txt') as f: for line in f: for word in line.split(): print(word, end='_') print() Ibland får man indata lagrat på en fil Filer öppnas lättast med with open(...) Som standard går det endast att läsa från filen

17 / 19 Filhantering Teckenkodning Vanligtvis öppnar python filer med den teckenkodning som är standard på ditt system Det kan ändras med encoding-parametern om man vet att filen har en specifik teckenkodning with open('minfil.txt', encoding='latin1') as f: for line in f: for word in line.split(): print(word, end='_') print()

18 / 19 Filhantering Filmoder with open('minfil.txt', mode='r') as f: for line in f: print(line.strip()) Om man vill ändra sättet man öppnar filen på (t.ex. för att kunna skriva till den) byter man ut 'r' mot något annat enligt nedanstående tabell Filmod Egenskap r Öppna för läsning w Öppna för skrivning (trunkerar innehållet) a Öppna för skrivning i slutet w+ Öppna för läsning och skrivning

19 / 19 Filhantering Skriva till fil with open('minfil', 'w') as f: for val in range(3): f.write(str(val)) with open('minfil', 'w') as f: for val in range(3): print(val, file=f) Man kan skriva till filer öppnade med 'w' eller 'a' Man kan göra det med write, men det är lättare med print och file-parametern

www.liu.se