Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


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

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

2 Start von EcPy / Doku Doku im Internet: w2.gzg-fn.de/info
Download von EcPy (steht auch in P:\Freigabe\Informatik) Python Lösungen – die Programme in den Moduln *_loes, im Internet src.zip, am GZG in P:\Freigabe\sey\inf\src zum direkten Kopieren in Ecpy In P:\Freigabe\Sey\Inf stehen ebenfalls die Unterlagen. Die wichtigsten Grundlagen zu Python stehen in aa_PythonInfos_Grundlagen.doc GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

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+= 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. GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

9 Geschachtelte Schleifen
Berechne alle pythagoräischen Zahlen, d.h. alle Zahlentripel (a,b,c) mit a2+b2=c2 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 GZG FN W.Seyboldt InfK12 Sj 13/14

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. GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14

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 GZG FN W.Seyboldt InfK12 Sj 13/14


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

Ähnliche Präsentationen


Google-Anzeigen