29.08.2013 Views

Föreläsning

Föreläsning

Föreläsning

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Python<br />

Python<br />

• Skapat av Guido van Rossum<br />

• Döpt efter Monty<br />

• Styrkor:<br />

•Lättlärt<br />

•Klar syntax<br />

•Stort standardbibliotek<br />

•Intuitiv objektorientering<br />

•Lättintegrerat<br />

•Aktiv community<br />

•Lätt att skala upp<br />

1


•Imperativt<br />

•Objektorienterat<br />

•Dynamiskt<br />

Men vad är det?<br />

•Skriptspråk<br />

•Jämförs ofta med Tcl, Perl, Ruby, Scheme<br />

och Java<br />

Imperativt?<br />

•Prolog är deklarativt (så här är det)<br />

•Python är imperativt (gör så här)<br />

2


Objekt?<br />

•I Prolog finns inga objekt, bara värden<br />

•Ett objekt har attribut<br />

•Ett objekt har metoder<br />

•Typer<br />

•Klasser<br />

•Lite vagt…<br />

Skriptspråk?<br />

•Rad för rad: gör detta<br />

•Bygga macros och systemskript<br />

3


Interaktivt läge<br />

[bender:~] petern% python<br />

Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)<br />

[GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin<br />

Type "help", "copyright", "credits" or "license" for more<br />

information.<br />

>>><br />

Köra skript<br />

[bender:~] petern% python helloworld.py<br />

Hello world!<br />

Starta Python<br />

Vårt första program<br />

• Tradition: skriv ett "Hello World"<br />

• I Python:<br />

Interaktivt läge<br />

>>> print "Hello world!"<br />

Hello world!<br />

>>><br />

I en fil<br />

#!/usr/local/bin/python<br />

print "Hello world!"<br />

4


Inte vårt första program<br />

•I C++<br />

#include <br />

void main()<br />

{<br />

}<br />

cout


Variabler<br />

•(understreck eller bokstav) + (bokstäver,<br />

siffror eller understreck<br />

•inte reserverade ord<br />

•skiftlägeskänsliga: SPAM är inte spam<br />

•lite extra konventioner (mer senare)<br />

Reserverade ord<br />

and<br />

assert<br />

break<br />

class<br />

continue<br />

def<br />

Nyckelord<br />

del<br />

elif<br />

else<br />

except<br />

exec<br />

finally<br />

for<br />

from<br />

global<br />

if<br />

import<br />

in<br />

is<br />

lambda<br />

not<br />

or<br />

pass<br />

print<br />

raise<br />

return<br />

try<br />

Dessutom konstanten None<br />

Specialfall: with och as<br />

while<br />

yield<br />

6


Grundläggande<br />

datatyper<br />

•Heltal - 3<br />

•Flyttal - 2,456<br />

•Listor - [1,2,3,4] (mutable)<br />

•Strängar - ”spam!” (immutable)<br />

•Dictionaries - {1:”camelot”, 2:”shrubbery”}<br />

(mutable)<br />

•Tupler - (1,2,3,) (immutable)<br />

ex: [1,2,1,2,5,4,1]<br />

Listor<br />

är inte en rekursiv datastruktur, finns inte "svans"<br />

slå ihop listor med +<br />

>>> a = [1,2,3] + [4,5,6]<br />

>>> a<br />

[1, 2, 3, 4, 5, 6]<br />

7


Vårt andra program<br />

Demo<br />

Vad demon visade<br />

a = [1,1,2,1,1,2]<br />

print list1+list2<br />

for item in list2:<br />

if item == 4:<br />

print "SPAM"<br />

•tilldela variabler med<br />

=<br />

•utskrift med print<br />

•list1+list2<br />

beräknas först<br />

Och det här är<br />

viktiga grejer…<br />

8


for item in list2:<br />

if item == 4:<br />

print "SPAM"<br />

Indentering Kolon<br />

Viktiga grejer<br />

för varje "item" i list2:<br />

om "item" är 4:<br />

skriv "SPAM"<br />

Mer variabler<br />

Prolog:<br />

X=7<br />

X=8<br />

no<br />

'=' betyder unifiering<br />

logiska variabler<br />

== ger jämförelser<br />

= ger tilldelning<br />

Python:<br />

X=7<br />

X=8<br />

resultat: X=8<br />

'=' betyder tilldelning<br />

'==' är lika med<br />

'!=' är inte lika med<br />

destruktiv tilldelning<br />

9


•Nyckelordet ”def”<br />

def funk(args):<br />

dodis<br />

dodat<br />

newcodehere<br />

Funktioner<br />

Funktioner<br />

•Kan returnera objekt<br />

•Kan utföra andra handlingar<br />

•Kan anropa andra funktioner<br />

10


Exampel:<br />

Funktioner<br />

def double_print(inString):<br />

print inString, inString<br />

double_print("Spanish Inquisition")<br />

resultat:<br />

Spanish Inquisition Spanish Inquisition<br />

Exempel:<br />

Funktioner<br />

def double_string(inString):<br />

return inString + inString<br />

print double_string("Spanish Inquisition")<br />

resultat:<br />

Spanish InquisitionSpanish Inquisition<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!