Föreläsning
Föreläsning
Föreläsning
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