Python programmering. Per Tøfting. MacFest

Relaterede dokumenter
Lær Python dag 1 - modul 1

2) Det er let at være produktiv med Python, da Python som regel kun har mellem 67 og 80% færre linier end tilsvarende C eller Java kode.

Introduktion til funktioner, moduler og scopes i Python

JavaScript. nedarvning.

Programmering for begyndere Lektion 2. Opsamling mm

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Introduktion til programmering. Uge 38.1 Python 2 Learning Python, kap 8-12.

Noter til C# Programmering Selektion

Noter til C# Programmering Iteration

Abstrakte datatyper C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Lær Python - Dag 4, modul 2 Objektorienteret programmering

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Forelæsning Uge 2 Mandag

Kapitel 3 Betinget logik i C#

Lær Python - Dag 3, modul 1 Læse og skrive filer

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Kapitel 4 Løkker i C#

Start på Arduino og programmering

Sammenlign og byt. Et eksempel på dokumentering af et program

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit if (indkomst > ) topskat = (indkomst ) * 0.

SWC eksamens-spørgsmål. Oversigt

Introduktion til programmering. Programmeringssprog Uge 44 Computer Science, kap 6. Learning Python: kap 13, 14.

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

DM507 Algoritmer og datastrukturer

Python 3 kursus lektion 1:

Denne rapport vil beskæftige sig med hvordan computere bruger matematiske algoritmer til at sortere tal efter størrelse.

DM507 Algoritmer og datastrukturer

Skriftlig eksamen i Datalogi

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Programmering C RTG

Kursusarbejde 3 Grundlæggende Programmering

Grundlæggende Matematik

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

Programmering i C Intro og grundlæggende C 5. marts 2007

HTML, PHP, SQL, webserver, hvad er hvad??

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Programmering I Java/C#

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

Kommentarer til opgave 4-6

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

Computer Science Camp

JavaScript. Grundlæggende elementer. Jørgen Sørensen. jososoft software development Jørgen Sørensen

Grundlæggende Matematik

Software Construction 1 semester (SWC) Spørgsmål 1

Algoritmer og invarianter

Dokumentation af programmering i Python 2.75

Transkript:

Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/

Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer if while for Funktioner Moduler Exception

Måder at afvikle et Python program på Interaktiv: Terminalen: $ python >>> Afslut interaktiv og vend tilbage til alm. terminal vindue: Ctrl+D MacPython: IDLE: Menu: Windows > Python Interactive >>> Starter med interaktiv vindue Python Shell' >>>

Måder at afvikle et Python program på Modul filer: $ python modul.py Script filer: Find evt. ud af hvad der skal stå i første linie af filen med: $ which python Første linie: eller: #!/usr/bin/python #!/usr/bin/env python Filen skal gøres eksekverbar: $ chmod 744 script.py eller: $ chmod u+x script.py $./script.py

Variabler En variabel er en pegepind (reference), der peger på den adresse i computerens arbejdslager (RAM), hvor en værdi (objekt) er placeret. Den eksiserer fra den tildeles en værdi. a = 1 Dens værdi kan ændres når programmet udføres. a = 2 Den kan tildeles værdier af forskellig type under udførelsen af programmet. a = 'abc' Et objekts identitet: id(a) Et objekts type: type(a) Variabelnavne: starte med et bogstav (A til Z eller a til z) eller understregning (_) efterfulgt at nul eller flere bogstaver, tal (0 til 9) eller understregninger. a 1 a abc

Data typer tal Heltal: Decimal tal: 1, 23, 567, 99999999999L (0 til 9) Octale tal: 01, 027 (0 til 7, og starter med 0) Hexadecimale tal: 0x1, 0xDA5 (0 til 9 og A til F, starter med 0x) sys.maxint angiver maximale heltal. L eller l efter heltal angiver long version uden predefineret højeste tal. Reelle tal (kommatal, floating point): En sekvens af decimal tal der inkluderer et decimal punktum (.), en exponet del eller begge dele. 0.0, 1.0, 1.e2, 1e 2 Komplekse tal: Skrives som real del + imaginære del efterfulgt af j eller J. 3+4J, 9+2J

Aritmetiske operatorer +x Plus x Minus x + y Addition x y Subtraktion x * y Multiplikation x ** y Eksponent x / y Division, ægte x // y Division, heltals x % y Modulus, rest Ved division brug: from future import division

Data typer sekvenser Sekvens: En ordnet kontainer af elementer, som er indexeret med ikke negative tal, starter fra 0. Sekvenstyper: Strenge (tekststrenge): 'Hej', MacFest Tupler: (2, 5), (2, 'Hej', 0xA) Lister: [2, 5], [2, 'Hej', 0xA] +---+---+---+---+---+---+---+ M a c F e s t +---+---+---+---+---+---+---+ 0 1 2 3 4 5 6-7 -6-5 -4-3 -2-1

Data typer dictionary Dictionary (ordbog): En uordnet samling af elementer indexeret af næsten vilkårlige værdier kaldet nøgler. Elementerne i et dictionary består af nøgle:værdi par. Nøglerne kan være af forskellig type, men skal være hashable. Værdierne er vilkårlige objekter og kan have forskellig type. {'x':42,'y':3.14,'z':7}, {1:2,3:4}

Kontrol strukturer Et programs flow er kontroleret af betingelser, løkker og funktionskald. Betingelser (selektion): if sætninger if else sætninger if elif... else sætninger Løkker (iteration): while løkker for løkker Funktionskald: def sætninger

if sætninger Syntaks for if sætninger: if udtryk: if udtryk: else: if udtryk: elif udtryk: elif udtryk:...... [else: ] Et udtryk er en sætning, der resulterer i en værdi, som evalueres til at være sand eller falsk i if sætninger og while løkker. pass : den tomme sætning.

Relations og betingelsesoperatorer x == y x er lig med y x!= y x er ikke lig med y x < y x er mindre end y x > y x er større end y x <= y x er mindre end eller lig med y x >= y x er større end eller lig med y x is y x og y er det samme objekt x is not y x og y er ikke det samme objekt x in y x er et element i kontaineren y x not in y x er ikke et element i kontaineren y not x boolsk NOT x and y boolsk AND x or y boolsk OR Returnerer True eller False. Sammenligninger kan kædes sammen: 0 < a < 100.

Sand eller falsk i boolks sammenhæng I boolsk sammenhæng er enhver værdi enten sand eller falsk. Falsk: Sand: False None Tallet 0 uanset type En tom streng, tuple, liste og dictionary True Alle tal på nær 0 En ikke tom streng, tuple, liste eller dictionary Brug: if x: Ikke: if x is True: if x == True: if bool(x):

while og for løkker Syntaks for while løkke: break: bryd ud af løkke. while udtryk: [else: ] continue: sprig over resten af løkken, fortsæt med næste gennemløb af løkke. Syntaks for for løkke: for element in itererbar: [else: ]

Funktioner Syntaks for funktioner: def funktionsnavn(parameterliste): parameterliste: positions parametrer w valgfrie parametrer x = udtryk ekstra positions parametrer *y ekstra valgfrie parametrer **z Kald af funktion: funktionsnavn(argumentliste) argumentliste: positions argumenter navngivne argumenter return udtryk : Retuner et resultat fra funktionen ellers returneres None.

Scope Namespace Scope: Den del af et program hvor en variabels værdi kan tilgås. Lokal variabel: En variabel, som er oprettet i en funktions blok. Variablen er først tilgængelig, fra den er oprettet og tildelt en værdi. Dens eksistens kendes ikke udenfor funktionen. En funktions parametrer er også lokale variabler. En lokal variabel med samme navn som en global variabel skjuler den globale variabel. Global variabel: En variabel der er oprettet udenfor funktionerne i et modul. En global variabels værdi kan nås i en funktion, men skal værdien ændres skal variablen erklæres global i funktionen.

Moduler import modulnavn [as nymodulnavn] modulnavn.funktionsnavn() from modulnavn import funktionnavn [as nyfunktionnavn] from modulnavn import * funktionsnavn() Egne modulers pladsering import sys sys.path.append('/sti til modul(er)') Eller brug af PYTHONPATH.bash_profile tilføjes: export PYTHONPATH=/sti til modul(er):$pythonpath Stien til et modul findes med Unix kommandoen pwd, når man står i biblioteket med modulet.

Exceptions undtagelser Syntaks for try/except sætninger: try: except [udtryk [, variabel]]: [else: ] Syntaks for try/finally sætninger: try: finally: