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

Relevanta dokument
Datalogi för E Övning 3

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

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

Repetition av filer Grundkurs i programmering med Python

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

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

Tentamen OOP

Laboration 1. Utgåva 1 Gäller från

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

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

kl Tentaupplägg

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

Ordlistor, filhantering och ut på webben. Linda Mannila

Föreläsning 13 Testning och strängar

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

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

Klasser och objekt, referenser Grundkurs i programmering med Python

Tentamen i Introduktion till programmering

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

Laboration: Whitebox- och blackboxtesting

kl Tentaupplägg

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

Uppgifter teknik HT17 (uppdaterad v. 40)

i LabVIEW. Några programmeringstekniska grundbegrepp

Användarhandledning Version 1.2

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

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

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

Datalogi, grundkurs 1

Textsträngar från/till skärm eller fil

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

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

Extramaterial till Matematik Y

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

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

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.

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

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

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

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

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

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

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

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?

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

Grundläggande datalogi - Övning 1

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

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

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

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I

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

Pythons standardbibliotek

Föreläsning 3-4 Innehåll

Strängar. Elektronikcentrum i Svängsta AB

v. 42 Python HT17 En introduktion Oscar Bergqvist

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

v. 43 Python HT17 En introduktion Oscar Bergqvist

TDDC77 Objektorienterad Programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

729G04 Programmering och diskret matematik

729G74 - IT och programmering, grundkurs. Dugga.

DD1314 Programmeringsteknik

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

kl Tentaupplägg

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

Anteckningar 1: Grundläggande saker

JAVAUTVECKLING LEKTION 7

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

Uppgift 1 (grundläggande konstruktioner)

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

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Installera Anaconda Python

OOP Objekt-orienterad programmering

En kort text om programmering i C.

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

Övning 1 - Abstrakta datatyper

Övning 6. Ali Tofigh 24 Oktober, 2006

Introduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries

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

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Variabler, värden och typer

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Malmö högskola 2007/2008 Teknik och samhälle

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

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

Transkript:

Hösten 2009

Dagens lektion Text som arbetsredskap Funktioner på text i Python Formatera text Läsa från tangentbordet Strängindexerade fält 2

Text som arbetsredskap 3

TEXT SOM ARBETSREDSKAP Textens roll i programmering Text vanliga i vardagsprogrammering Tolka och hantera filer från program Formatera text som används av program Text ofta svårt men finns bra stöd Svårt att hantera alla fall och fel Problem med olika teckentabeller 4

TEXT SOM ARBETSREDSKAP Redskap när vi arbetar med text Ta ut delsträngar Dela upp strängar i olika beståndsdelar Söka speciella ord eller mönster i strängar Ersätta delar av en sträng med nya ord eller tecken Formatering av text (siffror, tal, tabeller) 5

Funktioner på text i Python 6

FUNKTIONER PÅ TEXT I PYTHON Delsträngar Första tecknet i en sträng har index 0(!) >>> s = Lite text att arbeta med >>> s[0:6] Lite t >>> print s[:6] Lite t >>> print s[5:9] text 7

FUNKTIONER PÅ TEXT I PYTHON Dela upp och sätta ihop strängar >>> s = Lite text att arbeta med >>> ord = s.split( ) >>> ord [ Lite, text, att, arbeta, med ] >>> print ord[3] arbeta >>> print -.join(ord) Lite-text-att-arbeta-med 8

FUNKTIONER PÅ TEXT I PYTHON Söka i en sträng >>> s = Lite text att arbeta med >>> s.find( text ) 5 >>> s.find( text, 6) -1 >>> s.count( a ) 3 >>> s.count( a ) 2 9

FUNKTIONER PÅ TEXT I PYTHON Ersätta text i en sträng >>> s = Lite text att arbeta med >>> print s.replace( arbeta med, byta ut ) Lite text att byta ut >>> s = aaaaaa >>> s.replace( a, b ) bbbbbb >>> s.replace( a, b,2) bbaaaa 10

FUNKTIONER PÅ TEXT I PYTHON Fler funktioner på strängar s.capitalize() s.isalnum() s.isdigit() s.isspace() s.lower() s.strip([chars]) s.endswidth(u[,st[,e]]) s.isalpha() s.islower() s.isupper() s.startswith() s.upper() 11

Formatera text 12

FORMATERA TEXT Why all the fuss? Finns behov av att på ett smidigt sätt formatera text Utseende av flyttal (t.ex antal decimaler) Möjlighet att skriva ut text och tal i tabeller plats värde 1 23.0 5 1.6 10-2.7 23 6.0 13

FORMATERA TEXT Använda print till formatering Har många sätt att formatera Formateringskoder i strängen och värden som argument Lite ovant sätt att skriva >>> import math >>> print "Normalt antal decimaler: %f" % math.pi Normalt antal decimaler: 3.141593 >>> print "Med tre decimaler: %.3f" % pi Med tre decimaler: 3.142 14

FORMATERA TEXT Formatera strängar %s %s Skriver ut strängen %ns Strängen upptar totalt n tecken med inledande blanksteg %-ns Strängen upptar totalt n tecken med efterföljande blanksteg # adress.py print "namn: %17s" % "" print "telefon: %17s" % "090 786 7707" > python adress.py namn: telefon: 090 786 7707 15

FORMATERA TEXT Formatera heltal %i %i Skriver ut ett heltal %0ni Skriver ut totalt n tecken med inledande nollor %+ni Skriver även ut ett inledande plusstecken före positiva tal %+0ni Kombination av ovan 16

FORMATERA TEXT Formatera decimaltal %f %f Skriver ut ett decimaltal (flyttal) %.nf Skriver ut n decimaltecken %nf Skriver ut totalt n tecken med inledande blanksteg %+nf Skriver ut totalt n tecken med ett plusstecken före positiva tal 17

FORMATERA TEXT Mer om formatering Behöver inte användas tillsammans med print >>> string = %.2f % math.pi Flera värden kan skrivas ut samtidigt med hjälp av en tupel >>> print %3i%5.2f% % (3, 23.561) 18

Läsa från tangentbordet 19

LÄSA FRÅN TANGENTBORDET Läsa in vad användaren skriver I små program som körs via kommandotolken kan det vara praktiskt att användaren får ge input till programmet. Programmet kan fråga efter information och användaren får svara Funktionen raw_input() väntar tills användaren skrivit något och tryckt på return. Resultatet returneras som en sträng. Kan ta en sträng som argument. Denna skrivs ut innan programmet väntar på användaren. 20

LÄSA FRÅN TANGENTBORDET Exempel m = float(raw_input( Ange antal meter: )) aln = m/0.593808 print %.3f m är detsamma som %.3f aln % (m, aln) 21

Strängindexerade fält 22

STRÄNGINDEXERADE FÄLT Strängindexerade fält I en lista använder man index för att komma åt ett värde Vi vill hålla reda på namn, ålder och adress för en person Många fall mer praktiskt med namngivna index Strängindexerade fält Definieras av par - nyckel och värde Nyckeln är en sträng Värdet kan vara av vilken datatyp som helst Nyckeln används för att hämta värdet. 23

STRÄNGINDEXERADE FÄLT Exempel person1 = { namn : Kalle, alder :23, adress : Krokiga stigen 41\n955 73 Dungen } person2 = { namn : Frida, alder :26, adress : Tallkojan 1\n955 41 Storskogen } personer = [person1, person2] for person in personer: print %s\n%s\n % ( person[ namn ], person[ adress ]) 24

STRÄNGINDEXERADE FÄLT Formattera strängindexerade fält Vi kan i formateringssträngen ange namn på fält i strängindexerade fält. for person in personer: print %(namn)s\n%(adress)s\n % person 25

STRÄNGINDEXERADE FÄLT Kolla om en nyckel finns if namn in person1: print person1[ namn ] else: print Inget namn tillgängligt Alternativt if person1.has_key( namn ): print person1[ namn ] else: print Inget namn tillgängligt 26