Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in...

23
Python Einführung Monica Selva Soto Mathematisches Institut [email protected] 24 März 2009 Monica Selva Soto Python Einführung

Transcript of Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in...

Page 1: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

Python Einführung

Monica Selva Soto

Mathematisches [email protected]

24 März 2009

Monica Selva Soto Python Einführung

Page 2: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

Ü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

Page 3: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 4: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 5: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 6: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 7: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 8: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 9: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 10: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 11: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 12: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 13: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 14: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 15: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 16: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 17: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 18: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 19: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 20: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 21: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 22: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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

Page 23: Python Einführungmselva/nm1_SS2009/python_einfuehrung.pdf · Variablen in Python Jedes Objekt in Python hat eineIdentität, einenTypund einenWert. Die Identität eines Objekts ist

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