lehrkraefte:blc:informatik:glf4-20:simulation:python-repe

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf4-20:simulation:python-repe [2021/03/27 09:02]
Ivo Blöchliger
lehrkraefte:blc:informatik:glf4-20:simulation:python-repe [2021/04/06 20:15] (current)
Ivo Blöchliger [Python Repetition / Cheat Sheet]
Line 1: Line 1:
 ====== Python Repetition / Cheat Sheet ====== ====== Python Repetition / Cheat Sheet ======
  
 +Eine minimalistische Version gibt es [[lehrkraefte:blc:informatik:glf4-20:simulation:python-mini-cheat-sheet|hier]].
 +
 +  * Gehen Sie Beispiele von oben bis unten durch.
 +  * Kopieren Sie jeweils den Code in TigerJython und führen Sie das jeweilige Programm aus.
 +  * Versuchen Sie, jede Zeile der Programm zu verstehen. Wenn Sie nicht sicher sind, fügen sie ''print()''-Anweisungen ein, um besser zu verstehen, was das Programm tut.
 +  * Wenn Sie eine Zeile nicht verstehen, stellen Sie Fragen und/oder "googeln" sie.
 +  * Das Ziel ist nicht, alles auswendig zu wissen, aber zu wissen, was möglich ist und wo die Information zu finden ist.
 ===== Variablen, Strings vs. Zahlen ===== ===== Variablen, Strings vs. Zahlen =====
 === Variablen mit Zahlen === === Variablen mit Zahlen ===
Line 9: Line 16:
 print(bar)     # Ausgabe von bar (immer noch 23) print(bar)     # Ausgabe von bar (immer noch 23)
 print(foo-bar) # Ausgabe 20 print(foo-bar) # Ausgabe 20
 +print("5 hoch 3 ist")
 +print(5**3)    # Potenzieren mit **
 +print("Wurzel 2 ist")
 +print(2**0.5)  # kurze Schreibweise zum Wurzeln ziehen (allerdings nicht schnell in der Ausführung)
 </code> </code>
  
Line 60: Line 71:
  
 ===== Selektion (if, elif, else) ===== ===== Selektion (if, elif, else) =====
 +<code python>
 +for z in range(40):
 +    if z%15 == 0:   # z%15 ist der Rest der Division durch 15. Um Gleichheit zu prüfen wird das doppelte Gleichheitszeichen verwendet
 +        print("%d ist durch 15 teilbar" % z)
 +        print("    Alles was eingerückt ist, wird nur dann ausgeführt, wenn die Bedingung wahr ist")
 +    elif z%5 == 0:  # Wenn die erste Bedingung falsch ist, und z%5==0
 +        print("%d ist eine Fünferzahl" % z)
 +    elif z%3 == 0:
 +        print("Dreierzahl %d" % z)
 +    else:   # Wenn keine der obigen Bedingungen wahr ist
 +        print("%d ist weder durch 3 noch 5 teilbar" % z)
 +    print("  Das wird auf jeden Fall ausgeführt, weil bezüglich dem if nicht eingrückt, es wird aber wiederholt")
 +print("Und das wird nicht wiederholt, sondern nur ganz am Schluss einmal ausgegeben")
 +</code>
 +Beachten Sie, dass ''elif'' und ''else'' optional sind.
  
 +===== Listen =====
 +Variablen, die Listen enthalten, sollten Bezeichnungen im **plural** erhalten.
 +=== Elemente auslesen und zuweisen ===
 +<code python>
 +foos = [42,23,111]     # Liste mit 3 Elementen
 +print(foos)            # Ausgabe
 +print("Erstes Element foos[0] = %d" % foos[0])
 +# Ausgabe: Erstes Element foos[0] = 42
 +foos[2] = 12345        # Drittes Element überschreiben
 +print(foos)            # Ausgabe [42,23,12345]
 +print("foos hat %d Elemente." % len(foos))    # len(liste) liefert die Anzahl Elemente. Der Index vom letzten Element ist also len(foos)-1
 +
 +print("Negative Indizies greifen von hinten auf die Liste zu, d.h. foos[-1]=%d ist das letzte Element" % foos[-1])
 +print("foos[-2]=%d ist das zweiletzte Element" % foos[-2])
 +</code>
 +=== Liste aufbauen mit .append ===
 +<code python>
 +quadratzahlen = []    # Leere Liste (Name ist plural!)
 +for i in range(30):
 +    quadratzahlen.append(i*i)     # Der Liste ein neues Element hinten anhängen
 +print("%d im Quadrat ist %d" % (7,quadratzahlen[7]))
 +print(quadratzahlen)
 +</code>
 +
 +=== Elemente durchgehen ===
 +Nur Elemente
 +<code python>
 +zahlen = [42,23,12,1]   # Name ist Plural
 +for zahl in zahlen:     # Für jedes Element einmal wiederholen. Aktuelles Element in zahl
 +    print(zahl)
 +</code>
 +Nur Index
 +<code python>
 +zahlen = [42,23,12,1]            # Name ist Plural
 +for i in range(len(zahlen)):     # i läuft von 0 bis len(zahlen)-1, was dem Index des letzten Elements entspricht
 +    print(zahlen[i])
 +</code>
 +Index und Element
 +<code python>
 +zahlen = [42,23,12,1]            # Name ist Plural
 +for i,zahl in enumerate(zahlen): # i läuft von 0 bis len(zahlen)-1, zahl ist automatisch zahlen[i]
 +    print("Element %d ist %d" % (i,zahl))
 +</code>
 +
 +===== Funktionen =====
 +Ohne Argumente (Parameter) und ohne Rückgabewert.
 +<code python>
 +def hallo():          # Definition einer Funktion ohne Argumente und ohne Rückgabewert, Der Name ist belibig, sollte mit einem Kleinbuchstaben beginnen und beschreibend sein.
 +   print("Gruss von der Funktion hallo()")
 +
 +print("Programmstart ist hier!"  
 +hallo()
 +hallo()
 +</code>
 +Mit Argumenten, ohne Rückgabewert
 +<code python>
 +def plappermaul(was, wieviel):   # Die Variablen was und wieviel existieren nur in dieser Funktion und haben nichts mit Variablen vom gleichen Namen ausserhalb zu tun.
 +    for i in range(wieviel):     # Die Variable i lebt nur in dieser Funktion und beeinflusst Variablen mit gleichem Namen ausserhalb nicht.
 +        print(was)
 +    
 +plappermaul("hallo", 4)          # Schreib 4 mal hallo
 +</code>
 +Ohne Argumente, mit Rückgabewert
 +<code python>
 +def meineListe():
 +    zahlen = [1,1]
 +    for i in range(20):
 +        zahlen.append(zahlen[-1]+zahlen[-2])   # Summe der beiden letzten Elemente
 +    return zahlen                              # Funktion sofort beenden und Resultat zurückgegeben
 +
 +foos = meineListe()   # Resultat der Funktion (in diesem Fall eine Liste) in die Variable foos spichern.
 +print(foos)
 +</code>
 +Mit Argumenten, mit Rückgabewert
 +<code python>
 +def quadrat(x):
 +    return x*x   # Quadrat von x berechnen und als Resultat zurückgeben.
 +z = 12
 +q = quadrat(z)   # Resultat der Funktion in q speichern.
 +print("Das Quadrat von %d ist %d" % (z,q))
 +</code>
 +
 +===== Zufallszahlen =====
 +Uniform verteilte Ganzzahlen
 +<code python>
 +from random import randrange
 +for i in range(1,21):   # i läuft von 1 bis 20 (die obere Grenze exklusive)
 +    print("Wurf %2d: -> %d" % (i, randrange(1,7))  # Zufällige Ganzzahl von 1 bis und mit 6 (Parameter genau wie range, obere Grenze exklusive)
 +</code>
 +Uniform verteilte reelle Zahlen im Intervall $[0,1)$.
 +<code pyton>
 +from random import random
 +for i in range(10):
 +    print(random())
 +</code>
 +Uniform verteilte reelle Zahlen im Intervall $[a,b)$.
 +<code pyton>
 +from random import random
 +a = 2.71828
 +b = 3.14152
 +for i in range(10):
 +    print(random()*(b-a)+a)  # Intervall [0,1) auf [a,b) umrechnen (lineare Funktion)
 +</code>
  
  • lehrkraefte/blc/informatik/glf4-20/simulation/python-repe.1616832146.txt.gz
  • Last modified: 2021/03/27 09:02
  • by Ivo Blöchliger