Python Einführung
Monica Selva Soto
Mathematisches [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 derPunkte in den Übungsblättern und in denpraktischen 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östwerden.
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ürNumerik.
Monica Selva Soto Python Einführung
Verfügbarkeit und Installation
Windows Enthought Python und Easy Eclipse für PythonLinux (Ubuntu) Python 2.5, scipy, numpy, matplotlib, Easy Eclipse für
Python
Datei ipy_profile_mcscipy.py von Übungen-Seite herunterladen und inWindows HOMEPATH/_ipython
Linux HOMEPATH/.ipythonspeichern.
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 EclipseIn 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 definiertwerden. Um sie benutzen zu können, müssen sie (die Module) zuerstmittels der Funktion import eingebunden werden.
Beispiele: pyplot und numpyfrom numpy import *from matplotlib.pyplot import figure, plot,\show, title
x = array([0,1,2,3,4,5,6,7,8,9])y = x + 1figure()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
Beispielea = 1; b = 10a = 1.0; b = 10.0
c = 2+1j; c.real; c.imag
a = b = c = 2a,b = 1,2.0a,b = b,a
Monica Selva Soto Python Einführung
Booleans
Booleans können True oder False sein.Das Ergebnis logischer Operation ist ein Booleanlogische Operationen: ==, !=, >, <, >=, <=, and, or, not
Beispielea = 1.0; b = 1; c = complex(1,0)a == b and b == ca == b == c
d = -1a == b > d
Monica Selva Soto Python Einführung
Strings
Strings werden zwischen ’ ’, " " oder """ """ geschrieben.Mit """ kann man Strings schreiben, die sich über mehrere Zeileerstrecken.Operationen: + (Verkettung), * (Wiederholung)
Beispieles1 = ’a’s2 = "b"s3 = s1 + s2s3 = s3*4s4 = """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.
Beispielex = [1, 2, ’ab’, 3, 4]’ab’ in xx[0] = 111 not in xdel 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äß ihrerReihenfolge 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.
Beispielex = [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.
Beispielea = 2print(a + " ist eine gerade Zahl")
a = 2print(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 dasObjekt zeigt. Sie lässt sich durch die Funktion id abfragen.
Beispielea = 2id(a)b = aa is b
Monica Selva Soto Python Einführung
Veränderbare und unveränderbare Datentypen
Bei unveränderbaren Datentypen (z.B. Zahlen) führt die Änderungeiner Variable zu einer neuen Zuweisung.Bei veränderbaren Datentypen (z.B. Listen, arrays) wird bei derÄnderung einer Variable das Objekt selbst geändert.
Beispielea = 2b = ab = 2.0
Nach der letzen Zuweisung haben a und b unterschiedlicheIdentitäten.x = [1,2]y = x
Nach der letzten Zuweisung haben x und y die gleiche Identität. Diefolgende Zuweisung ändert auch den Wert des 1. Elements von x.y[0] = -1
Monica Selva Soto Python Einführung
Copy Modul
copy, deepcopyx = [1,2,3]y = xy[0] = -1
Nach der letzten Zuweisung ist x[0] auch -1. Dieses Problem kannman mit Hilfe der Funktionen copy, deepcopy vermeiden.
from copy import copyz = copy(x)z[0] = -1
Monica Selva Soto Python Einführung
Codeblöcke
Verzweigungenz = float(raw_input("Geben Sie eine Zahl "))z1 = z % 2if (z1 == 0):
print("z war eine gerade zahl")else:
print("z war nicht eine gerade zahl")print z1print z
Monica Selva Soto Python Einführung
Schleifen
forzahlen = [1,2,3,4,5,6,7,8,9,10]summe = 0for i in zahlen:
summe = summe + i
summe = 0for i in range(1,11):
summe = summe + i
whilei = 1summe = 0while i <= 10:
summe = summe + ii += 1
Monica Selva Soto Python Einführung
Funktionen
Beispieldef meinesumme(N=10):
summe = 0for i in range(1,N+1):
summe = summe + ireturn summe
meinesumme()meinesumme(5)meinesumme(N=20)
Monica Selva Soto Python Einführung
Funktionen, Optionale Argumente
Beispieldef meinesumme(Start,Stop,Step=1):
summe = 0for i in range(Start,Stop+1,Step):
summe = summe + ireturn summe
meinesumme(1,10)meinesumme(2,3)meinesumme(1,10,2)
Monica Selva Soto Python Einführung
Funktionen, Keyword-Argumente
Beispieldef meinesumme(Start=1,Stop=10,Step=1):
summe = 0for i in range(Start,Stop+1,Step):
summe = summe + ireturn 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 Befehleaufgerufen.Mit import bsp1 wird bsp1 als Modul interpretiert und alleFunktionen und Variabel, die da definiert sind, werden hochgeladen.Ändert man bsp1.py, muss man mittels reload(bsp1) allesnochmal hochladen.
Monica Selva Soto Python Einführung
Numpy
Das Numpy-Package ermöglicht die Arbeit mit Matrizen undVektoren.
Vektoren und Matrizenb = array([3,2])c = 2*bx = 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, ...
Beispielfrom 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 Beispielefrom 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