aa_PythonInfos

Werbung
Python
Seite 1
Graf-Zeppelin-Gymnasium
Python: Zusammenfassung, Literatur
Inhaltsverzeichnis
Grundlegenden Datenstrukturen - Variablen ...........................................................................................................3
Umwandlung von Datentypen ...............................................................................................................................3
Integer ........................................................................................................................................................................3
Floats, d.h. Dezimalzahlen ......................................................................................................................................3
Decimals , beliebig, aber fest eingestellte hoch Genauigkeit .............................................................................3
Strings ........................................................................................................................................................................4
Formate für Zahlen in Strings (%-Formatierung) ...............................................................................................4
Umwandlungen von Datentypen ...........................................................................................................................5
Types ..........................................................................................................................................................................5
Sequenzen – Listen, Tupels (Arrays), ... ....................................................................................................................5
Listen ..........................................................................................................................................................................5
Tupel ..........................................................................................................................................................................6
Dictionary ..................................................................................................................................................................7
Programmstrukturen ....................................................................................................................................................8
Schleifen ....................................................................................................................................................................8
Bedingungen .............................................................................................................................................................8
Ausgabe .....................................................................................................................................................................8
Eingabe ......................................................................................................................................................................8
Funktionen ................................................................................................................................................................9
Files und I/O ............................................................................................................................................................9
Exceptions, Fehlerabfang .................................................................................................................................... 10
CAS – Rechnen mit Buchstaben......................................................................................................................... 10
Objekte in Python...................................................................................................................................................... 10
Besondere Funktionen .............................................................................................................................................. 11
Libraries....................................................................................................................................................................... 12
Import von Libraries ............................................................................................................................................ 12
Datum und Zeit ................................................................................................................................................ 12
Rechenzeit bestimmen ..................................................................................................................................... 12
NumPy Package .................................................................................................................................................... 12
PyLab Package ....................................................................................................................................................... 13
SciPy Package......................................................................................................................................................... 14
MatPlotLib Package .............................................................................................................................................. 14
Graphen von Funktionen zeichnen ............................................................................................................... 14
Turtle Grafik .......................................................................................................................................................... 17
Turtle Fenstereinstellungen ............................................................................................................................. 17
Turtle Einstellungen ......................................................................................................................................... 17
Turtle Bewegungen........................................................................................................................................... 17
Grafik Pygame ....................................................................................................................................................... 18
Fenster, Grafik .................................................................................................................................................. 18
Einfache grafische Objekte ............................................................................................................................. 18
Sprites – Kollisonserkennung ......................................................................................................................... 19
Ereignisse - events ............................................................................................................................................ 19
Zeit messen, Timer ........................................................................................................................................... 19
Weitere Grafik ....................................................................................................................................................... 20
Graphic, GUI .................................................................................................................................................... 20
Python-Installationen, IDEs .................................................................................................................................... 21
Pythonshell ............................................................................................................................................................. 21
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 1
Python
Seite 2
Graf-Zeppelin-Gymnasium
Pyscripter ................................................................................................................................................................ 21
EcPy, Eclipse mit Pydev ...................................................................................................................................... 21
Starten von Ecpy .............................................................................................................................................. 22
Hilfe Eclipse ...................................................................................................................................................... 22
Packages EcPy Python Portable 2.7.3.1 ........................................................................................................ 23
Python-Programme in exe-Files verwandeln .................................................................................................... 24
Pydev ........................................................................................................................................................................... 25
Geschichte, Hintergrundinfos ................................................................................................................................. 25
Literatur, Linksammlungen ...................................................................................................................................... 26
Lehrmaterialien zu Python ................................................................................................................................... 26
Python offizielle Dokus, Tutorials ...................................................................................................................... 28
Python Libraries, Beispiele, Einführungen....................................................................................................... 29
Jython – Python für Java ...................................................................................................................................... 30
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 2
Python
Seite 3
Graf-Zeppelin-Gymnasium
Grundlegenden Datenstrukturen - Variablen
i=1
Ganzzahl
Float
f=0.1
Gleitkommazahl
String
s="Hallo"
Zeichenkette
Liste
l=[1, 2, 3]
Veränderbare Liste mit Reihenfolge
Tupel
t=(1, 2, 3)
Unveränderbare Liste mit Reihenfolge
Integer
Dictionary d={1: "eins", 2: "zwei", 3: "drei"} Assoziatives Array
Umwandlung von Datentypen
int(2.33) liefert 2
float(3) liefert 3.0
str(53) liefert die Zahl 53 als Zeichenkette
Integer
Python rechnet automatisch mit beliebig großen Integerzahlen.
Wenn man Int-Zahlen dividiert, wird nach dem Komma abgeschnitten. Will man dies nicht, muss man sie
zuvor in eine float-Zahl verwandeln: float(i)/3
Den Rest bei der Division erhält man mit r=a%b
produkt=a*b
division=b/a
rest=b%a
Floats, d.h. Dezimalzahlen
Normale Dezimalzahlen (float) sind im wissenschaftlichen Zahlenformat abgespeichert. Sie bestehen also
aus einer Mantisse (die Nachkommastellen) mit 17 Stellen und einem Exponenten.
Alle Zahlen, die einen Punkt enthalten, werden als floats abgespeichert.
d=17. oder e=2.34
div2=round(div,2) # auf 2 Nachkommastellen runden
float(34) # erzeugt die Dezimalzahl 34.
Decimals , beliebig, aber fest eingestellte hoch Genauigkeit
Wenn man Dezimalzahlen mit mehr als 17 Nachkommastellen benötigt, geht man wie folgt vor.
Allerdings erfordert dies eine hohe Rechenleistung, die Programme werden langsamer wenn man nicht mit
Floats rechnet.
from decimal import * # Import der Bibliotheken
getcontext().prec = 60 # Einstellen der Rechengenauigkeit 60
Stellen
# Eingabe:
z1=Decimal(3)
# mit ganzen Zahlen
z2=Decimal(5)/Decimal(7)
# mit Brüchen
z3=Decimal(str(12.45))
# Dezimalzahlen
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 3
Python
Seite 4
Graf-Zeppelin-Gymnasium
z4=Decimal((0, (3, 1, 4, 1, 5), -4))
print z1, "/", z2, "/", z3, "/", z4
Strings
Die Tastatur liefert Strings, also Zeichenketten, die im PC im ASCII oder UTF8-Format gespeichert
werden, das Drücken der Return-Taste beendet die Eingabe eines String.
Strings sind unveränderbar, werden prinzipiell gleich wie listen behandelt. Allerdings kann man an ihnen
keine Veränderungen vornehmen
Str=“Test“
Str[2] # hier s, Zählung beginnt bei 0
Str[-1] # letzter Buchstabe t
Str[0:3] # = Tes
len(Str)
# Länge des Strings
Unicode String
Uni=u”Hello\u0020World” # \u0020 ist das Leerzeichen
Soll der String auf der nächsten Eingabezeile weitergehen,
schreibe am Ende der Zeile \
Eine neue Zeile in einem String erzeugt man mit \n, ein “-Zeichne
mit \“ oder \’
Funktionen für Strings:
import string
string.join()
liste = string.split(str) # in eine Liste von Worten auftrennen
liste = string.splitlines(str) # in eine Liste von Zeilen trennen
string.join(list)
print("My name is %s and weight is %d kg!" %('Zara', 21))
Triple-quoted Strings “““: Der String kann über mehrere Zeilen
gehen, darf End-Of-Line-Zeichen enthalten, also \n, man benötigt
keine \ am Ende der Zeile
Formate für Zahlen in Strings (%-Formatierung)
Soll eine Zahl in einem bestimmten Format ausgegeben werden, so schreibt man an der Stelle im String,
an der die Zahl angezeigt werden soll, ein %-Zeichen gefolgt von einem der unten angegebenen Formate.
Nach dem String kommt dann ein %() und in der Klammer steht die Zahl, die formatiert ausgegeben wird,
siehe Beispiele unten nach der Tabelle.
%s
String
%d
als ganze Zahl int
%0xd
ganze Zahl mit x stellen, Nullen davor
%x.yf
Dezimalzahl mit x Stellen insg. / y Stellen nach dem Komma
%f
Dezimalzahl mit 6 Stellen nach dem Komma
%e
Wissenschaftliches Zahlenformat mit e
%E
Wissenschaftliches Zahlenformat mit E
%g
Zahl passend wie beim GTR (e für Exponent)
%G
Zahl passend wie beim GTR (E für Exponent)
%xz
%-xz
75886473
Format z mit z Stellen, rechts aufgefüllt
Format z mit z Stellen, links aufgefüllt
W.Seyboldt (Stand: 3.3.14)
Seite 4
Python
Seite 5
Graf-Zeppelin-Gymnasium
%.yz
Format z with y Nachkommastellen
%x.yz
Format z with y Nachkommstellen der Breite x
%%
the percentage sign (%) itself
Beispiele
print “Der Geldbetrag ist %6.2f” %(geld)
print Zur Zeit t=%f s hat ein Ball die Anfangsgeschwindigkeit
v0=%.3E m/s und befindet sich in der Höhe %.2f m.
% (t, v0, y)
Umwandlungen von Datentypen
text= str(x) # x wird als String abgespeichert. 34 wird also mit
Hilfe der beiden Zeichen 3 und 4 abgepseichert.
n = int(x) # x wird zu einem int
z = float(x) # x wird als float abgespeichert.
Types
Den Type einer Variable kann man abfragen
print type(z), z
Man kann ihn umwandeln, was oft nötig ist.
n=45
z=float(n)
eingabe=raw_input("Test") # Die Eingabe liefert einen String aus
Zeichen, keine Zahl
z2=float(eingabe)
print z, "/", z2
Sequenzen – Listen, Tupels (Arrays), ...
Als Sequenzen werden Tupel (1, 2, 3) und Listen [1, 2, 3] bezeichnet. Im Gegensatz zu Dictionaries sind
Sequenzen geordnet, d.h. jedes Element hat eine eindeutige Position, ab Position 0 (Null) für das erste
Element der Liste, -1 kann für das letzte Element.gesetzt werden, z.B. (3, 4, 5)[0] liefert 3, (3, 4, 5)[-1]
liefert 5
Listen
Listen erzeugen
L = [1,5,8]
L = [1,7,“sieben“,[9,4]]
L = [9]*7 # Liste aus 7 mal dem Element 9
L=[]
# leere Liste
L = range(2,5) #=[2,3,4]
L = range(2,9,3) #=[2,5,8]
L = [x * 3 for x in range(4)]
L = [x * x for x in range(10) if x*x>25] # Quadratzahlen > 25
L1 = L[:]
# eine neue Liste wird erzeugt
L2 = [x for x in L] # zweite Art eine neue Liste zu erzeugen.
Auf Elemente zugreifen, Listen verändern
e = L[2]
# Das Element Nr.2, d.h. das dritte Element
e = L[-1]
# Das letzte Element L1=[10,“20“,“Da ist“,[1,2]]
L1[4]= “Neu“
# Ändert den Wert des fünften Elements
L2 = L
# L2 ist nun dieselbe Liste wie L
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 5
Python
Seite 6
Graf-Zeppelin-Gymnasium
Slicing von Listen:
L1 = L[:4]
# Slicing, Teillisten, bis unter Nr. 4
L1 = L[2:4]
# von Nr. 2 bis vor Nr. 4
L1 = L[-4:-2]
# vom viertletzten bis vor das zweitletzen
L1 = L[-4:]
# vom viertletzten bis zum Ende
L1 = L[3:-2]
# Von nr 3 bis zum vor das zweitletzte
L1 = L[3:10:2] # ab Elementindex 3 bis unter 10 jedes 2.
L1 = L[3::2]
# ab Elementindex 3 bis zum Ende jedes 2.
L1 = L[3::-1]
# ab Elementindex 3 bis zum Anfang jedes
# ein negativer Index dreht die Reiehenfolge um
L1 = L[::-1]
# liste wird umgedreht (wie liste.reversed())
L1 = L[1:]
# Alle Elemente ab 1
L1 = L[:]
# eine neue Liste wird erzeugt
L1 = L[4:7]= [4,6,8]
# ersetze eine Teilliste
Operatoren für Listen
L1+L2
# Verkettung von Listen
L.append(4)
# Liste mit Element verlängern
L.extend([7,8,[3,5]]) # Liste mit Liste verlängern
L.insert(2,‘neu‘)
# einfügen auf Pos 2
L.remove(“Neu“)
# Entferne das Element „Neu“
L.reverse()
# Kehrt die Reihenfolge um
L.sort()
# sortiert die Liste
L.pop(i)
# entfernt das i-te Elemente
Anz=L.count(3)
# zählt wie oft das Lement 3 vorkommt
Bool= (x in L)
# überprüft, ob x in der Liste vorkommt.
del L[n]
# Entferne das Element mit der Nr. n
L1=sorted(L)
# gibt eine neue sortierte Liste
S = sum(L)
# Summe der ´Liste
M=max(L)
# Maximum entspr. Minimum
laenge=len(L3)
# Länge der Liste
cmp(list1, list2)
Kopieren siehe http://henry.precheur.org/python/copy_list
L6 = L2[:] # eine neue Liste wird erzeugt
L6 = list(L2)
L2 = [x for x in L]
import copy
newobj = copy.copy(oldobj)
newobj = copy.deepcopy(oldobj)
# shallow copy
# deep (recursive) copy
gleiche Objekte liefern dieselbe id, verschiedene nicht
Abfrage mit id(list)
L.sort()
l.sort(reverse=True)
Tupel
Ähnlich zu Listen, aber nicht veränderbar
tuple = 'a', 'b', 'c', 'd', 'e' oder tuple = ('a', 'b', 'c', 'd',
'e')
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 6
Python
Seite 7
Graf-Zeppelin-Gymnasium
Nützlich sind gemeinsame Zuordnungen, etwa
a, b = 0, 1
a, b = b, a+b
Dictionary
Der Datentyp Dictionary (deutscher Begriff: assoziative Liste, nicht sehr gebräuchlich) ist den anderen
zusammengesetzten Datentypen ähnlich. Ein Unterschied besteht darin, dass man beliebige
unveränderbare Datentypen für die Indizes verwenden kann. Als Beispiel werden wir ein Dictionary
erzeugen um deutsche Wörter in englische Wörter zu übersetzen. Für dieses Dictionary sind die Indizes
strings.
dict={"eins":"one"}
dict["zwei"] = "two"
print(dict)
del (dict[“eins”])
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 7
Python
Seite 8
Graf-Zeppelin-Gymnasium
Programmstrukturen
Schleifen
for i in range(start, bisunter, schrittweite): # oder xrange
print i
while b>10:
b=b-1
for I in reversed(range(1,4)):
print i
# oder reversed(list):
for i,e in enumerate(mylist):
print i,e # i zeigt den Index und e zeigt das Element
break
continue
pass
#
#
#
#
beendet die Schleife
beendet die gerade aktuelle Iteration, beginnt also
den nächsten Schleifendurchlauf..
macht nichts
Bedingungen
if i>10:
print i
elif i>5:
print i
else:
print i
Ausgabe
print “Test“
Bem.: Ab python 3.0: print(“Test“)
siehe auch #Formate für Zahlen in Strings (%-Formatierung)
Eingabe
str = raw_input(„Beschreibung“)
str ist ein Ascii-String, der evtl umgewandelt werden muss, z.B.
i=int(str)
dezimal=float(str)
import easygui
easygui.msgbox(“..“)
easygui. enterbox(“..“)
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 8
Python
Seite 9
Graf-Zeppelin-Gymnasium
Funktionen
def name(ein1, ein2):
return erg
Default-Parameter siehe
Lambda-Funktionen siehe
Falls i gerade ist, ….
If (i%2)==0:
. . .
Addiere alle Elemente einer Liste li
sum=0
for i in li:
sum+=i
print sum
Zufallszahlen erzeugen
from random import *
random() # Zahl x mit 0<=x<1
Wurf=int(random()*6+1) # liefert die Würfelzahlen.
liste=[ int(random()*6+1 for i in range(100)] # 100 Würfe
Files und I/O
str = raw_input("Enter your input: ");
print("Received input is : ", str)
Mehrere Zeilen werden mit drei Anführungszeichen eingelesen
digits = """
73167176531330624919225119674426574742355349194934
71636269561882670428252483600823257530420752963450
"""
(Siehe strings01.py)
file object = open(file_name [, access_mode][, buffering])
try:
fh = open("testfile", "w")
(oder: fh = open("c:\\dir\\test.txt", "r"))
fh.write("This is my test file for exception handling!!")
except IOError:
print "Error: can\'t find file or read data"
else:
print "Written content in the file successfully"
# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n");
fo = open("foo.txt", "r+")
# Close opened file
fo.close()
print f
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 9
Python
Seite 10
Graf-Zeppelin-Gymnasium
s=””
for line in f:
s+=line
for line in f:
print line.rstrip()
for line in f:
outf=output.write(line.rstrip()+’\n’
str = fo.read(10);
print "Read String is : ", str
Exceptions, Fehlerabfang
http://www.tutorialspoint.com/python/python_exceptions.htm
try:
Do you operations here;
......................
except ExceptionI:
If there is ExceptionI, then execute this block.
except ExceptionII:
If there is ExceptionII, then execute this block.
......................
else:
If there is no exception then execute this block.
CAS – Rechnen mit Buchstaben
from sympy import *
x = Symbol ('x')
y = Symbol('y')
z=(x+y)**2
print z.expand()
siehe Sympy Tutorial http://docs.sympy.org/0.7.1/tutorial.html#tutorial
und Sympy User Guide: http://docs.sympy.org/0.7.1/guide.html#guide
Objekte in Python
Eine Klasse ist eine Zusammenfassung von Variablen und Methoden, die eine logische Einheit bilden.
Man redet dann von Attributen und Methoden. Da die Klassenarchitektur möglichst an die reale Welt
angepasst sein sollte (was in der realen Welt zusammengehört, sollte auch innerhalb einer Klasse
modelliert werden) wird die Verständlichkeit des Codes gegenüber anderen Programmieransätzen wie z.B.
der prozeduralen Programmierung verbessert.
class Bruch(object):
def __init__(self, z=0, n=1):
"""Konstruktor"""
self.n = n
self.z = z
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 10
Python
Seite 11
Graf-Zeppelin-Gymnasium
self.kuerze()
return
def __str__(self):
"""Dient zur Anzeige"""
text="Bruch (%i / %i = " %(self.z, self.n)
return text
def kuerze(self):
self.euklid()
if (self.z*self.n >=0):
vz=1
else: vz=-1
...
return
Klassen enthalten keinen direkt ausführbarer Code. Man muss zuerst ein Objekt erzeugen.
b1=Bruch(216,66)
print b1
Jetzt ruft man die Methoden wie folgt auf:
b1.kuerze()
Die Adresse von b1 wird intern für self eingesetzt, d.h. b1.kuerze() = kuerze(adressseVonB1) Mit anderen
Worten: Bei jedem Objekt wird self ein anderer Wert sein, aber immer die Adresse, an der das Objekt
(Code und Daten) steht.
Besondere Funktionen
eval(str)
Will man Code, z.B. auszuwertende Funktionen, in einem über eine Eingabe eingeben, muss man den
eingegebene String normalerweise mit einem Parser bearbeiten und dann den damit erstellten Code zur
Ausführung bringen.
Die Methode eval() erleichtert dies sehr. Eval wertet einen eingegebene String als Befehl aus, führt ihn aus
und gibt das Ergebnis der Ausführung zurüück.
Die eval-Anweisung wird verwendet, um gültige Python-Ausdrücke auszuwerten, die in einem String
gespeichert sind. Unten sehen Sie wieder ein einfaches Beispiel.
exec(str)
Die exec-Anweisung wird benutzt, um Python-Anweisungen auszuführen, die in einem String oder in
einer Datei gespeichert sind. Zum Beispiel können wir zur Laufzeit einen String erzeugen, der PythonCode enthält, und diese Befehle dann mittels der exec-Anweisung ausführen. Unten sehen Sie ein
einfaches Beispiel hierfür.
eexecfile(filename)
compile(str)
siehe https://lucumr.pocoo.org/2011/2/1/exec-in-python/
Py2Exe
Erstellen von exe-Files unter Windows.
http://openbook.galileocomputing.de/python/python_kapitel_22_002.htm
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 11
Python
Seite 12
Graf-Zeppelin-Gymnasium
Libraries
Import von Libraries
import lib # Funktionen func können nun einfach mit lib.func() aufgerufen werden
import lib as l # … mit l.func()
from lib import * # aufruf mit func()
Datum und Zeit
import time
import datetime
localtime = time.localtime(time.time())
localtime = time.asctime( time.localtime(time.time()) )
siehe auch
http://docs.python.org/library/time.html
http://www.tutorialspoint.com/python/python_date_time.htm
http://pleac.sourceforge.net/pleac_python/datesandtimes.html
http://tutorial.pocoo.org/stdlib.html#datum-und-uhrzeit
Date and Time (einfacher Überblick):
http://www.tutorialspoint.com/python/python_date_time.htm
http://docs.python.org/library/datetime.html#module-datetime
http://pleac.sourceforge.net/pleac_python/datesandtimes.html
http://de.wikibooks.org/wiki/Python-Programmierung:_Time
Rechenzeit bestimmen
import time
tAnf = time.time()
# …
tEnd = time. time ()
print("Rechenzeit =", sEnd-tAnf, "s")
NumPy Package
http://www.python-kurs.eu/numpy.php
 random.uniform (low=0.0, high=1.0, size=None) # array von
gleichverteilten Zufallszahlen
 random.rand (d0, d1, ..., dn) # array von gleichverteilten
Zufallszahlen der angegebenen Dimension(en)
 arange ([start,] stop[, step]) # array gegebener Schrittweite
(ohne 'stop')
 linspace (start, stop, num[, endpoint=True ]) # array mit
linearen Abst• anden (ohne 'stop' wenn 'endpoint=False')
 sum (a [,axis=None]) # Summe über alle Werte eines array (oder
einer Achse, bei verwendung des axis parameter)
 mean (a [,axis=None]) # Mittelwert alle Werte eines array
(oder einer Achse, bei Verwendung des axis Parametera)
 histogram (a[, bins=10][, range=(down,up)][, normed=False]) #
erzeugt Histogram im gegeben Bereich
 histogram2d (x,y,[, bins=10][, normed=False])# erzeugt ein 2D
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 12
Python
Seite 13
Graf-Zeppelin-Gymnasium
Histogram der arrays.
#
a
x
r
m
Erzeugen
= array([1., 2., 5., 13., 21.]) # von einer Liste
= arange(0.,1.,0.2) # = array([ 0., 0.2, 0.4, 0.6, 0.8])
= random.rand(5,2) # von Zufallszahlen
= diag(ones(3)) # 3 x 3 Einheitsmatrix
# Auschschneiden
a[1:3] # im Breich = array([ 2., 5.])
x[:-2] # vom Ende = array([ 0., 0.2, 0.4])
13
r[:,0] # komplette erste Spalte
# Elementweise Operationen
b = a**2 # = array([ 1., 4., 25., 169., 441.])
y = sin(x) # = array([ 0., 0.199, 0.389, 0.565, 0.717])
# Dimensionsreduktion
w = mean(r,axis=0) # z.B. = array([ 0.52594254, 0.66878539])
# Matrixalgebra
A = array([ [ 1., 4.], [3., 0.] ]) # 2 x 2 dimensional
u = array([ [1.], [0.] ]) # Spaltenvektor
dot(A,u) # Matrix-multiplikation
Ainv = linalg.inv(A) # Inverse einer Matrix
dot(Ainv,A) # check: = diag(ones(2))
s,v=linalg.eig(A) # berechnet Eigenwerte und Vektoren
v1, v2 = v[:,0:1], v[:,1:2] # def. (Spalten-)Eigenvektoren
dot(A,v1) - s[0]*v1 # check: = array([[ 0.], [ 0.]])
vInv = linalg.inv(v) # Inverse der Transformationsmatrix
dot(vInv, dot(A, v)) # check: = diag(s)
PyLab Package
 plot(x,y,**kwargs)
#Zeichnen einer Funktion, z.B.
x = linspace(0.,2.*pi,100)
plot(x,sin(x))
 hist(r,bins,**kwargs)
# Zeichnet Histogramm des gegeben Ereignis-array,z.B.
hist(random.normal(size=100000),arange(-3.,3.,0.1))
 bar(left,heigt[, width=0.8,align='edge'])
# Zeichnet Bar-Plot, z.B. ein Histogramm erzeugt durch
histogram
r = random.normal(size=10000)
h,left = histogram(r,20,range=(-2.,2.),normed=True)
bar(left,h,width=left[1]-left[0])
 figure([num = None][, figsize=(8, 6)])
#Erzeugt ein neues Fenster (oder wechselt zur angegeben
Nummer)
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 13
Python
Seite 14
Graf-Zeppelin-Gymnasium
SciPy Package
Packages:
 cluster # Vector quantization / Kmeans
 fftpack # Discrete Fourier transform algorithms
 integrate # Integration routines
 interpolate # Interpolation tools
 io # Read write of vector/matrix files (also MatLab)
 lib # Lapack/Blas wrapper
 linalg # Linear algebra basics
 linsolve # Linear solvers
 maxentropy # Maximum entropy modelling tools
 misc # Various utilities that don't have another home
 ndimage # Multidimensional image processing
 odr # Orthogonal Distance Regression (ODR)
 optimize # General-purpose optimization routines
 sandbox # Tools that are not mature enough
 signal # Signal processing
 sparse # Rudimentary sparse matrix class
 special # Collection of mathematical functions
 stats # Statistical functions and tests
MatPlotLib Package
Graphen von Funktionen zeichnen
Siehe local: Plotten\easyviz.pdf im Internet: http://code.google.com/p/scitools/
Gallery mit Bildern und Code http://matplotlib.sourceforge.net/gallery.html
Doku von MathPlotlib http://matplotlib.sourceforge.net/
Beispiel für Graphen mit den wichtigsten Befehlen (siehe a_Plot01_zweiFktn.py und a_Plot02_Kreis.py)
import matplotlib.pylab as plt
# Man benötigt zwei gleich lange Listen von x- und y-Werten
x = # Liste der x-Werte
man kann sie z.B. mit np.arange(xstart, x,start, dx) erzeugen
oder mit np.linspace(a,b, anzahl) (hier ist a dabei!, ist sind
anzahl – 1 Teilintervalle.)
y = # Liste der y-Werte
man kann Funktionen von numpy aufrufen, die man auf Listen
anwenden kann.
oder [f(xi) for xi in x]
plt.plot(x, y) # Farben siehe
http://sage.math.canterbury.ac.nz/home/pub/47/cells/76/docs-0.html
plt.xlabel("x - Zeit in min")
plt.ylabel("Funktionswerte")
plt.legend(["Kurve f(x)=x**2*exp(-x**2)"])
plt.axis([0, 3, -0.05, 0.6]) # [tmin, tmax, ymin, ymax]
plt.title("Der Graph einer Funktion")
plt.show() # anzeigen und warten.
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 14
Python
Seite 15
Graf-Zeppelin-Gymnasium
savefig("tmp2.eps")
Beispiel für ein Stabdiagramm, ein box-Plot siehe (b_barPlot01.py und b_barPlot02.py )
Viele ist gleich wie oben, nur statt plt.plot wird plt.bar verwendet.
Im Beispiel wird allerdings noch mit eingeführt, dass man die Grafik in verschiedene Teile unterteilen
kann. Fig.ax= fig.add_subplot
import pylab as plt
#make a new figure
fig = plt.figure()
# make a new axis on that figure.
# Syntax: # number of rows of subplots, number of columns, and the
# which subplot.
ax = fig.add_subplot(1,1,1)
# Eingabe der Daten
x = [1,2,3,4,5]
y = [4.8,6,3,5.6, 7.3]
# Dicke und linke Position der Boxes
dicke=0.5
d2=dicke/2
xl = [i-d2 for i in x]
# add a bar plot to the axis, ax.
ax.bar(xl,y, width=dicke, facecolor="yellow", label="gelb")
ax.grid(True)
ax.set_xlim(0, 8) # wenn weggelassen, sucht er selbst
ax.set_ylim(0, 10)
ax.set_xlabel('x-Werte')
ax.set_ylabel('Anzahl')
ax.set_title('Beispiel eines Stabdiagramms')
ax.legend()
plt.show()
Beispiel für ein Histogramm. Wenn man eine Menge Daten hat, z.B. weil man 200 mal bei zwei Würfeln
die Augensumme bestimmt, kann man die Verteilung relativ einfach plotten (b_HistoPlot01.py )
Vieles ist gleich wie oben, nur statt plt.plot() bzw. plt.bar() die Methode plt.histo() verwendet.
import random as r
import matplotlib.pyplot as plt
# 200 mal die Augensumme bei zwei Würfeln bestimmen
ausum=[sum([r.randrange(1,7) for j in range(2)] ) for i in
range(200)]
dicke=0.85
d2=0.5
bins=[i+2-d2 for i in range(15)]
# bins sollte so sein, dass der Mittelwert im Bereich günstig
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 15
Python
Seite 16
Graf-Zeppelin-Gymnasium
liegt.
# die diche bestimmt dann die Breite des Streifens, der in der
Mitte des
# Intervalls gezeichnet wird.
print bins
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.grid(True)
plt.hist(ausum, bins, histtype='bar', rwidth=dicke, \
facecolor="yellow" ,alpha=0.5)
ax.set_xlim(0, 14)
ax.set_xlabel('Augensumme')
ax.set_ylabel('Anzahl')
ax.set_title('Bei zwei Wuerfeln die Augensumme bestimmen')
plt.show()
Alle Plotting Commands siehe http://matplotlib.sourceforge.net/ (dort über weitere Links beschrieben)
Beispiele von Commands
 axes Create a new axes
 axis Set or return the current axis limits
 bar make a bar chart
 colorbar add a colorbar to the current figure
 draw Force a redraw of the current figure
 errorbar make an errorbar graph
 figure create or change active figure
 ioff turn interaction mode off
 ion turn interaction mode on
 legend make an axes legend
 pie make a pie chart
 plot make a line plot
 polar make a polar plot on a PolarAxes
 show show the figures
 subplot make a subplot (numrows, numcols, axes-num)
 text add some text at location x,y to the current axes
 title add a title to the current axes
 xlabel add an xlabel to the current axes
 ylabel add a ylabel to the current axes
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 16
Python
Seite 17
Graf-Zeppelin-Gymnasium
Turtle Grafik
Die „Turtle“ ist eine programmierbare „Schildkröte“, die auf dem Boden hin- und herlaufen kann und,
falls der Zeichenstift abgesenkt ist, ihren zurückgelegten Weg aufzeichnet.
Der Ursprung ist in der Mitte des Grafikfensters
Lit: http://docs.python.org/library/turtle.html
oder http://wiki.zum.de/Turtle-Grafik
Turtle Fenstereinstellungen
clear() # Zeichenfläche löschen
done() # Wartet, bis der Benutzer das Grafikfenster schließt
tracer(x) # falls x=0=False wird ohne Verzögerung gezeichnet,
# falls x=1=True, mit Verzögerung
speed(“fastest“) # kürzeste Verzögerung beim Zeichnen,
# oder slowest, normal, slow, fast
Titel(text) # Fenstertitel
Setup(width=x, heigth=y, startx=x0, starty=y0) # Fenster
einstellen
Turtle Einstellungen
import turtle (oder from turtle import *)
reset() # Turtle aktivieren, in den Anfangszustand setzen
up() # hebe den Stift
down() # senke den Stift
color(“black“) # Stelle die Farbe ein, z.B. red
# oder #ffffff
width(t) # Strichdicke t Pixel
clear() # Zeichenfläche löschen
done() # Wartet, bis der Benutzer das Grafikfenster schließt
mainloop() # ebenso
Turtle Bewegungen
forward(x) # x Pixel vorwärts
backward(x) # x-Pixel zurück
left(y) # Biege y° nach links ab
right(y)
goto(x,y) # gehe zur Position (x,y)
circle(r) # zeichne einen Kreis mit Radius r
circle(r,y) # zeichne einen Kreisbogen mit Radius r und Winkel y
Sollen mehrere Turtle erscheinen, so kann man mit tur2=Pen() eine zweite erzeugen. Alle Eigenschaften
von ihr werden dann mit tur2.eig() angesprochen.
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 17
Python
Seite 18
Graf-Zeppelin-Gymnasium
Grafik Pygame
Pygame-Tutorial: http://pygametutorials.wikidot.com/book-event
Knappe Einführung: http://pygame.org/docs/tut/intro/intro.html
Werden die Module von Pygame verwendet, benötigt man immer folgende Zeilen Code.
import pygame
# erster Befehl im Hauptprogramm
pygame.init()
Fenster, Grafik
Ein Bildschirmfenster erstellen und anzeigen:
fenster=pygame.display.set_mode([1000,800]) # 1000 pixel in x- 800 in y-Richtung
weitere Funktionen http://pygametutorials.wikidot.com/book-display
Hintergrundfarbe
fenster.fill([r,g,b]) # f,g,b: Farbwerte zwischen 0 und 255
fenste.get_size()
fenster.get_width()
fenster.get_height()
groese=[xlen,ylen]
oberfl=pygame.Surface(groesse)
oberfl.fill(farbe)
bild=oberfl.convert() # aus Oberfläche ein Bild machen
Es gibt viele Funktionen, die auf fenster schreiben. Allerdings werden die Änderungen erst angezeigt,
wenn die Datenstrukturen aus dem Hauptspreicher auf die Grafikkarte geschrieben werden (Sande S. 187)
pygame.display.flip() # Erst jetzt werden Änderungen angezeigt
Einfache grafische Objekte
farbe=[100,150,255]
posObenLinks = [x,y]
dicke=0 # d.h. Die Liniendicke ist so dünn wie möglich
pygame.draw.circle(fenster, farbe, posObenLinks, r, dicke)
pygame.draw.rect(fenster, …) # siehe Sande S. 192
pygame.draw.lines(fenster …) # siehe Sande S. 197
pygame.set_at()
pygame.get_at()
bild=pygame.image.load(“file”) # eine Grafikdatei anzeigen
rect=bild.get_rect()
rect.left = anfangspos x
rect.top = anfangspos y
rect = rect.move(geschwindigkeit)
fenster.blit(bild, [x,y]) oder
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 18
Python
Seite 19
Graf-Zeppelin-Gymnasium
fenster.blit(bild, rect)
Etwas bewegen: Löschen / neuzeichnen / flip
Sprites – Kollisonserkennung
Sande s. 211 oder http://www.pygame.org/docs/tut/SpriteIntro.html
Eine Klasse von Objekten, die von pygame.sprite.Sprite abgeleitet ist. Jedes Sprite benötigt ein imageAttribut
Kollisionserkennung:
1. Schritt: Erzeuge Sprite-Objekte und verkette sie zu einer Gruppe
Gruppe=pygame.sprite.Group()
Gruppe.add(Sprite-objekte)
2. Schritt Kollisionserkennung
gruppe.remove(obj)
if pygame.sprite.spritecollide(obej, gruppe, False):
Vorsicht: Es wird nur eine Kollision der Rechteckumgebung des Bildes erkannt.
Ereignisse - events
for ev in pygame.event.get():
if ev.type==pygame.QUIT:
sys,exit()
elif ev.type==pygame.MOUSEDOWN:
# event.pos[0] ist x-pos
# event.pos[1] ist y-pos der Maus
Userevent:
pygame.time.set_timer(pygame.USEREVENT, zeit) # zeit in ms
for ev in pygame.event.get():
if event.type==pygame.USEREVENT:
…
Zeit messen, Timer
sprite.time.delay(zeit) # zeit ms warten
uhr.pygame.time.Clock()
uhr.tick(anz) # anz gibt an, wie oft die Uhr pro Min tickt.
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 19
Python
Seite 20
Graf-Zeppelin-Gymnasium
Weitere Grafik
Graphic, GUI
http://www.tutorialspoint.com/python/python_gui_programming.htm
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 20
Python
Seite 21
Graf-Zeppelin-Gymnasium
Python-Installationen, IDEs
Pythonshell
Wenn man mal schnell etwas rechnen will, ist die Shell ein nützliches Werkzeug. Dies gilt nicht mehr,
wenn man komplexere Dinge machen möchte. Dafür gibt es IDE‘s – Integrated Development
Environment‘s
Wir starten die Shell-Version von Python am GZG, indem wir nach P:\Freigabe gehen (z.B.
indem wir auf dem Desktop auf das Icon „Freigabe der Lehrer“ klicken und dann im Windows-Explorer
folgende Klicks durchführen:
Pstart >Informatik >“PythonShell 2.7.2“
Es öffnet sich schwarzes Fenster.
Gebe z.B. help() ein.
Beende die Python-Hilfe wieder mit strg/Z (oder Return)
PyShell auf dem Stick mit EcPy dem Ordner EcPy starten:
Klicke im Ordner EcPy\ Portable Python 2.7.2.1 auf Python-Portable.exe
Pyscripter
Wir starten Pyscripter am GZG, indem wir nach P:\Freigabe gehen (z.B. indem wir auf dem Desktop
auf das Icon „Freigabe der Lehrer“ klicken und dann im Windows-Explorer folgende Klicks durchführen:
>Pstart >Informatik >Python 2.7.2 mit Pyscripter 2.4
Die Oberfläche zeigt drei Fenster:
links: CodeExplorer (es gibt drei Reiter unten, d.h. es werden drei Inhalte angezeigt)
rechts: Das Bearbeitungsfenster (für verschiedene Dateien)
unten: den Python Interpreter (vgl. die 7 Reiter unten)
Unten, im Python Interpreter können wir normale Pythonbefehle eingeben, z.B. 34*56
Wenn der Cursor m Menu-Bereich ist, wählen wir nun >File >new >new Python module.
In die erste Zeile schreiben wir
# -*- coding: iso-8859-1 -*Den Rest löschen wir
Im Menu-Bereich wählen wir >File >save und speichern den Modul in h:\InfK1\pyprogs als prg00
Am Ende der Stunde kopieren wir dann den Ordner h:\InfK1 immer auf den Stick (oder nur die neuen
Programme in h:\InfK1\pyprogs)
Unsere Befehle (unsere Programme) schreiben wir künftig immer in das rechte Fenster
Das Programm wird ausgeführt, wenn man auf das grüne Dreieck klickt.
onlineDoku: http://www.portablepython.com/
siehe auch Wiki online
PyScripter auf dem Stick mit dem Ordner EcPy starten:
Klicke im Ordner EcPy\ Portable Python 2.7.2.1 auf PyScripter-Portable.exe
EcPy, Eclipse mit Pydev
EcPy muss auf dem Stick, zu hause auf C: oder in der Schule auf H: installiert sein, da man ansonsten
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 21
Python
Seite 22
Graf-Zeppelin-Gymnasium
nicht genügend Rechte hat. Insbesondere kann man die Version auf P:\Freigabe\Inforamtik\Ecpy nicht
starten, man kann sie aber auf den Stick kopieren und
Starten von Ecpy
Gehe nach X:\Ecpy und klicke dort auf StarteEcPy oder StarteEclipse. Benutze den
Workspace A:\Pyprogs
Da Pydev nicht vollständig portable ist, wurde die Umgebung EcPy eingerichtet. Sie besteht aus:

Eclipse Portable mit portable JavaRE, Unterordner EcPy\Portable Python 2.7.2.1

Portable Python 2.7.2.1, UnterordnerEcPy\Portable Python 2.7.2.1
 Der Workspace, der von Eclipse benutzt wird, ist Q:\EcPy\PyPrgs. Der Workspace hat bereits
Pydev mit Portable Python eingebunden.
Die Schülerprogramme sollten alle in Pakages unterhalb des Pydev-Projektes ProjA stehen. Die
Schülerprogramme (Pydev Modules) stehen alle unterhalb von ProjA\src\...
Außerdem gibt es dort ein Projekt ProjLoes, in dem Lösungsbeispiele stehen.
Bemerkung: Da Pydev nicht wirklich Portable ist, wurde Q: mit Subst dem Laufwerk X:\...\EcPy
zugeordnet.
Weitere Infos siehe Zus_EclipsePydev.doc
EcPy kann man aus dem Internet herunterladen und dann z.B. nach C:\entpacken (prinzipiell überallhin,
nur nicht auf ein Laufwerk Q – Es darf überhaupt kein Q benutzt sein, dies benötigt EcPy
Hilfe Eclipse



lokal: Allerlei\eclipse-ide.pdf
lokal: Allerlei\Python mit Eclipse.doc
lokal: Allerlei\pydev_eclipse-ide.pdf
Google App-Engine

Siehe http://www.vogella.de/articles/GoogleAppEngine/article.html
Hilfen: python3 statt python 2






75886473
http://diveintopython3.org/porting-code-to-python-3-with-2to3.html
Deutsch zu Version 3.1:
http://tutorial.pocoo.org/
http://www.ssw.uni-linz.ac.at/Teaching/Lectures/Sem/2000/Pammer/
http://python.net/~gherman/publications/tut-de/online/tut/ (von 1999)
Englisch 3.0: http://docs.python.org/dev/3.0/tutorial/
W.Seyboldt (Stand: 3.3.14)
Seite 22
Python
Seite 23
Graf-Zeppelin-Gymnasium
Packages EcPy Python Portable 2.7.3.1
Folgende Packages (oder Libraries) sind in EcPy Version 2.7.3.1 installiert (Stand: Juni2012)
siehe http://www.portablepython.com/wiki/PortablePython2.7.3.1














NumPy 1.6.1
Online: http://numpy.scipy.org/
SciPy 0.10.1
online http://www.scipy.org/
Mathplotlib 1.1.0 (siehe auch oben)
online: http://matplotlib.sourceforge.net/
PyWin32 216
Django 1.4
Pil 1.1.7
Py2Exe 0.6.9
wxPython 2.9.3.1
NetworkX 1.6
Lxml 2.3.1.
PySerial 2.5
PyOBDC 3.0.2
PyGame 1.9.1
PyGTK 2.24.2
lokal: http://www.pygtk.org/ ist dabei gewesen, früher musste man diverse man muss dazu
diverse libs installieren, siehe)


PyQt 4.9.1-1 Anleitung
Online: http://zetcode.com/tutorials/pyqt4/german/
Python enthält Pyscripter 2.5.3

TKinter (ist Standard) Anleitung
Online: http://www.pythonware.com/library/tkinter/introduction/index.htm

Turtle Grafix: (ist Standard)



75886473
Online http://docs.python.org/library/turtle.html
PythonCard Ordner von Python 2.5.4. \Lib\sitePackages\PythonCard
(und Files \Lib\Sit-Packages\wx*.* wohl nicht nötig)
online: http://pythoncard.sourceforge.net/documentation.html
siehe auch Kapitel 20 von Hello World von Sande: SandePython\Hello World Programmieren fuer Kids und andere Anfaenger Kap 17-20.pdf
Erzeuge ein Package RessourceEditor / darin dann >Import >General >File System >Next
>gehe zu Q:\PortablePython…\App\Lib\side-packages\PythonCard\Tools\resourceEditor
>Ok >Select All >Finish
Starten nun ResourceEditor.py
Es öffnen sich zwei Fenster
IPython Ordner von Python 2.5.4. \Lib\sitePackages\IPython und File
\Lib\sitePackages\ipython-0.9.1.egg-info kopiert
SWGui vereinfacht die Gestaltung grafischer Benutzeroberfläche von TKinter und ist eine Datei
im Site-Packages-Ordner …\Lib\site-packages, siehe
W.Seyboldt (Stand: 3.3.14)
Seite 23
Python
Seite 24
Graf-Zeppelin-Gymnasium




http://www.geniu.de/jml/index.php/materialien/swgui/14-download-swgui
siehe Buch Oldenbourg: Mathematische Algorithmen im Unterricht: Mathematik aktiv erleben
durch Programmieren
EasyGui (Ordner von Python 2.5.4. \Lib\EASYGui und File \Lib\easygui.* kopiert)
Handbuch lokal: EasyGuiHB\index.html
VPython (ging bei Version 2.7.2. nicht mit easy_install, das ich davor installiert habe)
Kopiere danach folgende Ordner von lib\site-Packages in die Portable Version: visual, vis,
FontTools, Polygon, ttfquery.
Ebenso Files von lib\site-Packages TTFQuer_1.0.4-pys.6.egg-info,
FontTools.pth, Polygon-2.0.2-py2.7.egg-info, site.pcy, site.pyo
Sympy (Computeralgebra) einfach von der alten Installation den Ordner \Lib/sitepackages\sympy-0.7.1-py2.7-win32.egg kopiert
online: http://docs.sympy.org/0.7.1/index.html
und http://sympy.org/en/index.html
Sypder (mathlab-ähnliche Umgebung, braucht PyQt
online: http://docs.sympy.org/0.7.1/index.html
Doku online: http://packages.python.org/spyder/
Python-Programme in exe-Files verwandeln
Es gibt zwei Arten, wie man dies tun kann: Mit Py2exe (wird aber wohl nicht mehr weiterentwickelt) und
mit Pyintaller (http://www.pyinstaller.org/), das eine lokale Installation von Python benötigt,
Python_Portable genügt nicht.
Manual:
http://www.pyinstaller.org/export/develop/project/doc/Manual.html?format=raw oder
http://www.pyinstaller.org/export/d3398dd79b68901ae1edd761f3fe0f4ff19cfb1a/project/doc/Manual.ht
ml?format=raw#windows
Vorgehensweise kurz zusammengefasst:
Voraussetzung:
1) Python 2.7 mit win32 und den benötigen Libraries ist als Installation vorhanden (z.B. c:\Python27)
2) Nicht installierte Version von Pyinstaller (z.B. c: \Pyinstaller)
Kopiere gewünsctres Python-Prg x.py nach Pyinstaller
Gehe nach Pyinstaller (cmd, cd c:\Pyinstaller)
>configure.py
> Makespec.py –-onefile –-console x.py -> erstellt Ordner x und darin x.spec
> Build.py x\x.spec ->Ergebnis steht in x\dist als x.exe
Bemerkung 1: Die Programme sind alle recht groß, da die Libraries eingebunden werden.
Bemerkung 2: Pythoncard-Programme gehen nicht, wohl aber Matplotlib-Programme.
Siehe auch http://sebsauvage.net/python/snyppets/#py2exe
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 24
Python
Seite 25
Graf-Zeppelin-Gymnasium
Pydev
Einige Tastenbefehle (siehe http://pydev.org/manual_adv_features.html // http://pydev.org/ )
Start: F9
Template Complition ctrl+Space
Quick Code Foramtter: ctr-shift+f
Finde References ctrl+shift+G
Auto-import for undefinded Variable: Ctrl+1
Surround code wirht try..cath: : ctrl+1
Geschichte, Hintergrundinfos
Die Sprache wurde Anfang der 1990er Jahre von Guido van Rossum in Amsterdam als Nachfolger für die
Programmier-Lehrsprache ABC entwickelt. Die erste Version wurde 1994 veröffentlicht.
Sie wird an Unis häufig in Naturwissenschaften verwendet, aber auch z.B. bei Google
Rossum war und ist begeistert von Monty Python’s Flying Circus (siehe
http://de.wikipedia.org/wiki/Monty_Python%E2%80%99s_Flying_Circus) . Daher kommt der Name,
keinesfalls von der Schlange gleichen Namens
gehe im Browser zu http://docs.python.org/tutorial/
Lese den kurzen Vorspann und Kapitel 1: Whetting Your Appetite
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 25
Python
Seite 26
Graf-Zeppelin-Gymnasium
Literatur, Linksammlungen
Bemerkung: Auf die lokalen Links kann man nur zugreifen, wenn man die online Version dieser Fassung
im Browser geladen hat. Link zur online-Version.
Grundlagenliteratur:
 http://www.python-kurs.eu/index.php
 http://www.michael-holzapfel.de/progs/python/python_kurz.htm
 http://www.hdm-stuttgart.de/~maucher/Python/html/Datentypen.html
 http://openbook.galileocomputing.de/python/python_kapitel_08_003.htm
 Offizielle Doku:. http://www.python.org/doc/
Tutorial http://docs.python.org/2/tutorial/
 http://www.hdm-stuttgart.de/~maucher/Python/html/Datentypen.html
 http://openbook.galileocomputing.de/python/python_kapitel_08_003.htm
 Offizielle Doku:. http://www.python.org/doc/
Tutorial http://docs.python.org/2/tutorial/
 http://openbook.galileocomputing.de/python/python_kapitel_08_003.htm#mj6d41cdafb4b9046
4f2c005027f9c91d5Datentypen
 http://www.tutorialspoint.com/python/python_strings.htm (String Formatting mit %)
http://ada.rg16.asn-wien.ac.at/~python/how2think/kap09.htm
http://docs.python.org/3.1/tutorial/datastructures.html#dictionaries
http://ada.rg16.asn-wien.ac.at/~python/how2think/kap10.htm
http://openbookproject.net//thinkCSpy/ch12.html
http://diveintopython.org/native_data_types/index.html
http://progzoo.net/wiki/Python:Read_From_a_Database
http://www.tutorialspoint.com/python/python_files_io.htm
http://tutorial.pocoo.org/inputoutput.html
Sortieren von Listen: http://wiki.python.org/moin/HowTo/Sorting
Sequenzen
 http://docs.python.org/release/2.5.4/tut/node7.html
 http://effbot.org/zone/python-list.htm
 http://www.tutorialspoint.com/python/python_lists.htm
 http://ada.rg16.asn-wien.ac.at/~python/how2think/kap08.htm
 http://effbot.org/zone/python-list.htm Überblick über die wichtigsten Strukturen
 http://henry.precheur.org/python/copy_list Kopieren von Listen [.] und list()
 http://www.physik.uzh.ch/lectures/informatik/python/python-listen.php
Lehrmaterialien zu Python
L101)Python Tutorial (aus Gaienhofen am Bodensee)
online: http://www.python-kurs.eu/index.php
TKinter: http://www.python-kurs.eu/python_tkinter.php
Weiterführende Themen http://www.python-kurs.eu/system_programmierung.php
Dies ist eine relativ kurz gefasst Einführung in Python, vielleicht eher eine Zusammenfassung.
L102)Programmieren macht Spaß
local: Allerlei\ProgrMachtSpass.html
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 26
Python
Seite 27
Graf-Zeppelin-Gymnasium
online http://www.thomas-guettler.de/vortraege/python/einfuehrung.html
L103)Sande: Programmieren für Kids (nur lokal, Buch)
SandePython\Hello World - Programmieren fuer Kids / Kap 01-05.pdf
SandePython\Hello World - Programmieren fuer Kids / Kap 06-10.pdf
SandePython\Hello World - Programmieren fuer Kids/r Kap 11-16.pdf
SandePython\Hello World - Programmieren fuer Kids / Kap 17-20.pdf
SandePython\Hello World - Programmieren fuer Kids / Kap 21-25.pdf
SandePython\Hello World - Programmieren fuer Kids / Anhang.pdf
SandePython\Hello World - Programmieren fuer Kids / Index.pdf
SandePython\Hello World - Programmieren fuer Kids / Inhalt.pdf
L104)Python for Kids
lokal Allerlei\Py4Kids.pdf
Folien lokal Allerlei\Py4KidsFolien1.ppt
online http://ada.rg16.asn-wien.ac.at/~python/
L105)Langtangen: A Primer on Scientific Programming, 2nd
lokal: Langtangen\A Primer on Scientific Programming with Python (2009).pdf
L106)Langtangen Python Scripting, 3nd
local: Langtangen \Langtangen_PythonScripting_3ndEditon.pdf
locale Zusatzdoku Langtangen_Scripting\doc.html
ab pdf-Seite 251: Tkinter
L107)Demleitner-Skript (Uni Heidelberg)
lokal: Allerlei\Demleitner_Programmierenl_skript.pdf
online http://www.cl.uni-heidelberg.de/kurs/skripte/prog1/html/index.html
Klassen http://www.cl.uni-heidelberg.de/kurs/skripte/prog1/html/page031.html
L108)SAMS Scientific Python Tools
online http://www.sam.math.ethz.ch/~hheumann/Tutorial/html/index.html
Infos zu Matplotlib, numpy
L109)Python umfassende Handbuch von Peter Kaiser, Version 2.5
lokal: pythonHB\index.htm
online: http://www.galileocomputing.de/1626?GPP=oppy
L110)A Byte of Python,
Deutsche Fassung lokal: AByteOfPython\byteofpython_120_de.pdf
Englische Fassung lokal AByteOfPython\byteofpython_120_en.pdf
Online: http://www.ibiblio.org/g2swap/byteofpython/read/index.html
Grundlegende Einführung für Anfänger
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 27
Python
Seite 28
Graf-Zeppelin-Gymnasium
L111)How to Think Like a Computer Scientist (Python)
Wie ein Informatiker denken
Deutsche Fasssung online: http://ada.rg16.asn-wien.ac.at/~python/how2think/
Englische Fassung lokal: Allerlei\thinkCSpy.pdf
Englische Fassung online: http://openbookproject.net/thinkcs/python/english2e/
Konzeptionelle Einführung ins Programmieren, Python-Version
L112)Dive into Python Version 3
lokal: DiveIntoPython3\index.html
online http://diveintopython3.org
L113)A Beginners Tutorial
online http://www.sthurlow.com/python/
L114)Google Python-Class
http://code.google.com/intl/de-DE/edu/languages/google-python-class/
L115)Einführung Python (Uni, englisch)
online: http://courses.cms.caltech.edu/cs11/material/python/
lab5. Tkinter
L116)Python on your own
online http://www.py4inf.com/
L117)Python in Cambridge
online: http://www.ucs.cam.ac.uk/docs/course-notes/unix-courses/PythonProgIntro
L118)Python Eggs
http://www.python-eggs.org/
L119)Python Programming Snyppets, quick and dirty,
http://sebsauvage.net/python/
Gui mit Tkinte http://sebsauvage.net/python/gui
Iterating: http://sebsauvage.net/python/snyppets/#iterating
Objects: http://sebsauvage.net/python/snyppets/#readable_objects
Multithreading: http://sebsauvage.net/python/snyppets/#threads_and_gui
Python offizielle Dokus, Tutorials
Vermittelt die wichtigsten Merkmale von Python
L201)http://docs.python.org
Diese Dokumentation wird angezeigt, wenn man in PyScripter auf >Help >Python Manuals
klickt.
L202)http://www.python.de/
offizielle deutsche Doku
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 28
Python
Seite 29
Graf-Zeppelin-Gymnasium
L203)http://docs.python.org/tutorial/
Offizielle Python-Tutorials
L204)http://docs.python.org/py3k/library/functions.html
Build in functions
L205)http://www.rg16.asn-wien.ac.at/~python/how2think/gex.htm
L206)http://www.tutorialspoint.com/python/
Python Libraries, Beispiele, Einführungen
L301)Python Kurs mit Einführung in Python und Tkinter
http://www.wspiegel.de/pykurs/pykurs.htm
L302)Graphische Benutzeroberflächen in Python
lokal: Allerlei\TurtleTKinter_PY-091007-Schmidt-GUIinPython.pdf
Tkinter, Turtle, GUI
L303)Grayson: Python and Tkinter Programming
lokal Allerlei\python-and-tkinter-programming.9781884777813.52496.pdf
L304)An Introduction to Tkinter mit vielen Beispielen
online http://www.pythonware.com/library/tkinter/introduction/
L305)GUI with Tkinter und wxPython
http://sebsauvage.net/python/gui/
L306)Tutorials zu PythonCard
http://pythoncard.sourceforge.net/walkthrough2.html
http://pythoncard.sourceforge.net/documentation.html
L307)Python und Statistische Methoden der Datenanalyse
Skript lokal: Allerlei\Kolanoski_Stat.pdf
Script Python lokal: Allerlei\Kolanoski_pythonForStat-1.pdf
http://www-zeuthen.desy.de/~kolanosk/smd_ss08/uebungen/pythonForStat.pdf
L308)Matplotlib
Kurze Info (auf deutsch) lokal: Allerlei\matplotlib.pdf
User Guide (englisch) lokal: Allerlei\matplotlib-users_guide_0.90.0.pdf
L309)Practical Scientific Computing in Python
lokal: Allerlei\Practical_Scientific_Computing_with_Python.pdf
L310)Python für Physiker
lokal Kurs 1: Allerlei\pythonFuerPhysiker.pdf
lokal Übungen für Kurs 1: Allerlei\PythonFürPhysiker1_Übuingen_pythonp.pdf
lokal Kurs 2: Allerlei\pythonFuerPhysiker2.pdf
lokal Übungen für Kurs 2: Allerlei\PythonFürPhysiker2_Übungen_python2p.pdf
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 29
Python
Seite 30
Graf-Zeppelin-Gymnasium
L311)Pywin32
http://docs.activestate.com/activepython/2.5/pywin32/PyWin32.HTML
L312)Python recipes
http://code.activestate.com/recipes/langs/python/
L313)Numerik mit C und Python, Vorlesung
lokal: Allerlei\Numerik_C_Python.pdf
http://www.num.uni-sb.de/iam/studium/vorlesungen/ws201112/programmierung
Jython – Python für Java
L401)Doku Jython
http://www.jython.org/currentdocs.html
L402)Kurze Einführung in Jython, Jython Turtle (deutsch)
lokal Jython\Jython_Einfuehrung-3.pdf
L403)Jyton Tutorial
online http://www.jython.de/tutorials
L404)Jython Book
http://www.jython.org/jythonbook/en/1.0/
L405)Jython Einführung in die Standard-Libraries
http://www.jython.org/docs/library/indexprogress.html
L406)PyPlotter
http://www.eckhartarnold.de/apppages/pyplotter.html
http://www.eckhartarnold.de/apppages/onlinedocs/PyPlotter_Doc/index.html
L407)Jes (Jython for Students)
http://computational-thinking-workshop.iste.wikispaces.net...
http://code.google.com/p/mediacomp-jes/
http://coweb.cc.gatech.edu/cs1315/3569
L408)Logo
http://el.media.mit.edu/logo-foundation/logo/index.html
75886473
W.Seyboldt (Stand: 3.3.14)
Seite 30
Herunterladen