Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.

Ähnliche Präsentationen


Präsentation zum Thema: "SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen."—  Präsentation transkript:

1 SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen

2 SFZ Sj 13/14 GZG FN W.Seyboldt 2 Start von EcPy / Doku Doku im Internet: w2.gzg-fn.de/sfz – Download von EcPy – Python für SFZ – Die Unterlagen vom letzten Jahr In P:\Freigabe\Sey\SFZ stehen ebenfalls die Unterlagen. Kopiere sie bei Bedarf auf Deinen Stick. Die wichtigsten Grundlagen zu Pyth stehen in aa_PythonInfos_Grundlagen.doc Kopiere bei Bedarf EcPy von P:\Freigabe\Informatik nach H: und auf Deinen Stick (oder von der HP)

3 SFZ Sj 13/14 GZG FN W.Seyboldt 3 Grundlegende Elemente In Python müssen Variable nicht deklariert werden – im Gegensatz zu den meisten Programmier-sprachen. Sie werden beim ersten Zuweisen angelegt. Aber bei Variablen das Zuweisen nicht vergessen: Im Speicherplatz der linken Seite einer „Gleichung“ wird das abgespeichert, was mit der rechten Seite berechnet wird. Man unterscheidet zwischen Strings, Int (beliebig große Zahlen und float-Variablen (endliche Genauigkeit – sonst Decimals int(2.33)# liefert 2 float(3)# liefert 3.0 str(53)#liefert die Zahl 53 als Zeichenkette

4 SFZ Sj 13/14 GZG FN W.Seyboldt 4 Listen Listen sind eine sehr flexible Variante, viele Variable zu verketten (Array) L = [1,7,“sieben“,[9,4]] fo=[a,b]; i=2 while i<bis: i+=1 if i%2==1: c=a+b ; else: c=float(b)/a fo.append(c) ; a,b=b,c L = [x * 3 for x in range(4)] L1 = L[3:-1] #Von 3 bis vors letzte El.

5 SFZ Sj 13/14 GZG FN W.Seyboldt 5 Schleifen – sum=0 for i in range(1,27): sum+=i*i – # Liste in umgekehrter Richtung abarbeiten. for i in reversed(range(1,4)): # oder reversed(list), print i – # Auf Nr und Element gleichzeitig zugreifen for nr,el in enumerate(liste): print i,j – sum=0 i=1 while sum<1000: sum+=i*i i+=1 – while b!=0: r=a%b a,b=b,r – break # beendet die Schleife – continue # beendet >nächste Schleife

6 SFZ Sj 13/14 GZG FN W.Seyboldt 6 Bedingungen – if i>30: s=i*i elif i>20: s=i*i*i else: s=i*i*i*i – if a>b: # sorge dafür, dass a<b ist. a,b=b,a – if betrag(a-x*x)<genauigkeit: return x

7 SFZ Sj 13/14 GZG FN W.Seyboldt 7 Funktionen def f(x): return 3*x*x+3*x-2 def note(punkte): if punkte > 23: return 15 if punkte > 19: return 13 … def fakultaet(n): if n==1: return 1 return n*fakultaet(n-1) def fakultaet(n): erg=1 for i in range(2,n): erg*=i return erg*n

8 SFZ Sj 13/14 GZG FN W.Seyboldt 8 Element am Beginn einer Liste Die Methode li.append(el) fügt in einer Liste li das neue Element hinten bei der Liste dazu. Programmiere eine Methode vorne(el, liste), die ein Element an der ersten Stelle der Liste einfügt. def vorne(el, liste): if len(liste)==0: return [el] li=[0 for i in range(len(liste)+1)] for i in range(len(liste)): li[i+1]=liste[i] li[0]=el return li

9 SFZ Sj 13/14 GZG FN W.Seyboldt 9 Geschachtelte Schleifen Berechne alle pythagoräischen Zahlen, d.h. alle Zahlentripel (a,b,c) mit a 2 +b 2 =c 2 def pythagoraeischeZahlen(n): pyZahlen=[] for a in range(1,n): for b in range(a,n): c_square = a**2 + b**2 c = int(sqrt(c_square)) if ((c_square - c**2) == 0): pyZahlen.append([a, b, c]) return pyZahlen

10 SFZ Sj 13/14 GZG FN W.Seyboldt 10 Nullstellenverfahren Ist f stetig (d.h. f hat keine Sprungstellen, dies ist normalerweise in der Schule erfüllt) und f(a)*f(b)<0, dann gibt es im Intervall [a,b] mindestens eine Nullstelle. Intervallschachtelung: Wähle iterativ die Intervallhälfte, für die das Produkt der Funktionswerte an den Grenzen kleiner Null ist. Newtonverfahren: Ersetze die Funktion durch eine lineare Funktion, die die Steigung der Funktion f im Punkt a hat, der nahe der Nullstelle ist.

11 SFZ Sj 13/14 GZG FN W.Seyboldt 11 Intervallschachtelung while abs(b-a)>eps: m=(a+b)/2 iterationenAnz+=1 if f(m)==0: # Nullstelle gefunden break elif f(a)*f(m)<0: b=m else: a=m if iterationenAnz>200: # Abbruch iterationenAnz=-2 ; break return m,iterationenAnz

12 SFZ Sj 13/14 GZG FN W.Seyboldt 12 Newtonverfahren while abs(a-aAlt)>eps: an=a-f(a)/fs(f,a) # die neue Näherung aAlt=a a=an iterationen+=1 if iterationen>50: # Abbruch iterationen=0 break


Herunterladen ppt "SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen."

Ähnliche Präsentationen


Google-Anzeigen