Folien der Python Einführung am 24.03.09 im Hörsaal des MI

Werbung
Python Einführung
Monica Selva Soto
Mathematisches Institut
[email protected]
24 März 2009
Monica Selva Soto
Python Einführung
Übungen zur Numerik 1 Vorlesung
Übungen
Webseite: (Anmeldung, Übungsblätter)
http://www.mi.uni-koeln.de/~mselva/numerik1.php
Klausur: findet am 30.07.2009 statt.
Voraussetzung für die Zulassung: 50 Prozent der
Punkte in den Übungsblättern und in den
praktischen Aufgaben.
praktische Aufgaben
werden alle 3 Wochen ins Netz gestellt,
sind in Python zu bearbeiten,
müssen in Teams (von 2 oder 3 Studenten) gelöst
werden.
Monica Selva Soto
Python Einführung
Warum Python?
Python ist
leicht zu erlernen,
eine höhere Programmiersprache,
frei verfügbar,
mit den Bibliotheken numpy, scipy, matplotlib geeignet für
Numerik.
Monica Selva Soto
Python Einführung
Verfügbarkeit und Installation
Windows Enthought Python und Easy Eclipse für Python
Linux (Ubuntu) Python 2.5, scipy, numpy, matplotlib, Easy Eclipse für
Python
Datei ipy_profile_mcscipy.py von Übungen-Seite herunterladen und in
Windows HOMEPATH/_ipython
Linux HOMEPATH/.ipython
speichern.
Python starten:
Windows Durch Right-Click auf ipython-Symbol Aufruf
konfigurieren (der Ziel-Befehl mit -p mcscipy ergänzen)
Linux ipython -pylab -p mcscipy
Siehe http://www.mi.uni-koeln.de/~mselva/numerik1.php
Monica Selva Soto
Python Einführung
ipython und Easy Eclipse
In ipython kann man Befehle schreiben, z.B. Zuweisungen,
arithmetische Operationen, ...
Easy Eclipse benutzt man, um Skripte zu schreiben.
Python enthält viele Module, wo nützliche Funktionen definiert
werden. Um sie benutzen zu können, müssen sie (die Module) zuerst
mittels der Funktion import eingebunden werden.
Beispiele: pyplot und numpy
from numpy import *
from matplotlib.pyplot import figure, plot,\
show, title
x = array([0,1,2,3,4,5,6,7,8,9])
y = x + 1
figure()
plot(x,y)
title(’Gerade y = x+1’)
show()
Monica Selva Soto
Python Einführung
Zahlen
Zahlen können ganz, reell oder komplex sein.
Arithmetische Operationen:
+, - für Summe und Subtraktion
*, / für Multiplikation und Division
** für Potenz
// für ganze Division
Beispiele
a = 1; b = 10
a = 1.0; b = 10.0
c = 2+1j; c.real; c.imag
a = b = c = 2
a,b = 1,2.0
a,b = b,a
Monica Selva Soto
Python Einführung
Booleans
Booleans können True oder False sein.
Das Ergebnis logischer Operation ist ein Boolean
logische Operationen: ==, !=, >, <, >=, <=, and, or, not
Beispiele
a = 1.0; b = 1; c = complex(1,0)
a == b and b == c
a == b == c
d = -1
a == b > d
Monica Selva Soto
Python Einführung
Strings
Strings werden zwischen ’ ’, " " oder """ """ geschrieben.
Mit """ kann man Strings schreiben, die sich über mehrere Zeile
erstrecken.
Operationen: + (Verkettung), * (Wiederholung)
Beispiele
s1 = ’a’
s2 = "b"
s3 = s1 + s2
s3 = s3*4
s4 = """laengere Nachricht,
ueber mehrere Zeilen"""
Monica Selva Soto
Python Einführung
Listen und Tupel
Eine Liste wird mit eckigen Klammern umrahmt.
Ein Tupel wird mit runden Klammern umrahmt.
Listen darf man verändern, Tupel nicht.
Beispiele
x = [1, 2, ’ab’, 3, 4]
’ab’ in x
x[0] = 11
1 not in x
del x[0]
y = (1, 2, ’ab’, ’c’, 3, 4)
y[0] = 11
Andere Funktionen für Listen (Tupel darf man nicht verändern):
append, insert, del, len, ...
Monica Selva Soto
Python Einführung
Slicing
In Python werden die Elemente von Listen und Tupeln gemäß ihrer
Reihenfolge mit einem Index von 0 bis n belegt.
x[i]: (i+1)-te Element von x, x[0] bezeichnet das 1. Element von x.
x[i:j]: der 1. Index gibt das 1. zu berücksichtigende Element an. Der 2.
Index ist das erste nicht mehr zu berücksichtigende Element.
Beispiele
x = [1, 2, 3, ’a’, ’b’, ’c’]
x[0]
x[-1]
x[1:3] = [11, 12]
x[0:0] = [-3,-2,-1]
x[0:0] = [[-3,-2,-1]]
Monica Selva Soto
Python Einführung
Typumwandlungen
Mittels str(), int(), long(), float(), bool(), list(), tuple() ist es möglich,
den Datentyp einer Variable explizit zu ändern.
Beispiele
a = 2
print(a + " ist eine gerade Zahl")
a = 2
print(str(a) + " ist eine gerade Zahl")
Monica Selva Soto
Python Einführung
Variablen in Python
Jedes Objekt in Python hat eine Identität, einen Typ und einen Wert.
Die Identität eines Objekts ist der Ort im Hauptspeicher, auf den das
Objekt zeigt. Sie lässt sich durch die Funktion id abfragen.
Beispiele
a = 2
id(a)
b = a
a is b
Monica Selva Soto
Python Einführung
Veränderbare und unveränderbare Datentypen
Bei unveränderbaren Datentypen (z.B. Zahlen) führt die Änderung
einer Variable zu einer neuen Zuweisung.
Bei veränderbaren Datentypen (z.B. Listen, arrays) wird bei der
Änderung einer Variable das Objekt selbst geändert.
Beispiele
a = 2
b = a
b = 2.0
Nach der letzen Zuweisung haben a und b unterschiedliche
Identitäten.
x = [1,2]
y = x
Nach der letzten Zuweisung haben x und y die gleiche Identität. Die
folgende Zuweisung ändert auch den Wert des 1. Elements von x.
y[0] = -1
Monica Selva Soto
Python Einführung
Copy Modul
copy, deepcopy
x = [1,2,3]
y = x
y[0] = -1
Nach der letzten Zuweisung ist x[0] auch -1. Dieses Problem kann
man mit Hilfe der Funktionen copy, deepcopy vermeiden.
from copy import copy
z = copy(x)
z[0] = -1
Monica Selva Soto
Python Einführung
Codeblöcke
Verzweigungen
z = float(raw_input("Geben Sie eine Zahl "))
z1 = z % 2
if (z1 == 0):
print("z war eine gerade zahl")
else:
print("z war nicht eine gerade zahl")
print z1
print z
Monica Selva Soto
Python Einführung
Schleifen
for
zahlen = [1,2,3,4,5,6,7,8,9,10]
summe = 0
for i in zahlen:
summe = summe + i
summe = 0
for i in range(1,11):
summe = summe + i
while
i = 1
summe = 0
while i <= 10:
summe = summe + i
i += 1
Monica Selva Soto
Python Einführung
Funktionen
Beispiel
def meinesumme(N=10):
summe = 0
for i in range(1,N+1):
summe = summe + i
return summe
meinesumme()
meinesumme(5)
meinesumme(N=20)
Monica Selva Soto
Python Einführung
Funktionen, Optionale Argumente
Beispiel
def meinesumme(Start,Stop,Step=1):
summe = 0
for i in range(Start,Stop+1,Step):
summe = summe + i
return summe
meinesumme(1,10)
meinesumme(2,3)
meinesumme(1,10,2)
Monica Selva Soto
Python Einführung
Funktionen, Keyword-Argumente
Beispiel
def meinesumme(Start=1,Stop=10,Step=1):
summe = 0
for i in range(Start,Stop+1,Step):
summe = summe + i
return summe
meinesumme()
meinesumme(Step=2)
meinesumme(Start=2)
meinesumme(2,Step=2)
Monica Selva Soto
Python Einführung
run, reload, import
Funktionen, Befehle kann man in eine .py Datei schreiben, z.B.
bsp1.py.
Mit run bsp1 oder execfile(’bsp1.py’) werden alle Befehle
aufgerufen.
Mit import bsp1 wird bsp1 als Modul interpretiert und alle
Funktionen und Variabel, die da definiert sind, werden hochgeladen.
Ändert man bsp1.py, muss man mittels reload(bsp1) alles
nochmal hochladen.
Monica Selva Soto
Python Einführung
Numpy
Das Numpy-Package ermöglicht die Arbeit mit Matrizen und
Vektoren.
Vektoren und Matrizen
b = array([3,2])
c = 2* b
x = list(b)
y = 2* x
c und y sind nicht gleich! y enthält 4 Elemente, c nur zwei.
A = array([[1,2],[2,0]])
x = solve(A,b)
y = dot(A,x)
norm(y-b)
Andere nützliche Funktionen: zeros, ones, empty, shape
Monica Selva Soto
Python Einführung
Matplotlib
matplotlib enthält pyplot mit den Funktionen: figure, xlabel,
ylabel, title, xlim, ylim, show, ...
Beispiel
from matplotlib.pyplot import *
import numpy
x = linspace(0,2*pi,100)
y = sin(x)
plot(x,y)
title(’sin function’)
show()
Monica Selva Soto
Python Einführung
Matplotlib
Weitere Beispiele
from matplotlib.pyplot import *
import numpy
x = linspace(0,2*pi,100)
y = sin(.2*x)
z = sin(2.0*x)
plot(x,y,label=’.2’)
plot(x,z,label=’2’)
legend()
show()
Monica Selva Soto
Python Einführung
Herunterladen