Basiert auf "Introduction to Python programming" von J.R. Johansson (CC-BY). Anpassungen und Übersetzung durch mich (unter CC-BY).
Original verfügbar unter http://github.com/jrjohansson/scientific-python-lectures.
Die Keywords für bedingte Ausführung lauten in Python if
, elif
(else if), else
:
x = True
y = True
if x:
print("x ist wahr")
elif y:
print("y ist wahr")
else:
print("Nichts ist wahr")
x = True
y = True
if x:
print("x ist wahr")
if y:
print("y ist wahr")
x = True
y = True
z = True
# Alles ist wahr
if x and y and z:
print("Alles ist wahr")
elif x:
print("x ist wahr")
elif y:
print("y ist wahr")
elif z:
print("z ist wahr")
else:
print("Nichts ist wahr")
In Python wird ein Codeblocks durch die Einrückungsebene definiert (normalerweise ein Tabulator oder vier Leerzeichen). Das bedeutet, dass der Code korrekt eingerückt sein muss, da es sonst Syntaxfehler gibt.
x = False
y = True
if x:
print("x ist wahr")
if y:
print("y ist wahr")
print("y ist noch immer wahr")
print("Immer ausgeben")
Um zu prüfen, ob ein Wert in einer Liste oder in einem Dictionary ist, kann das Keyword in
verwendet werden:
liste = [1, 2, 3]
a = 2
if a in liste:
print(f"{a} ist in der Liste")
else:
print(f"{a} nicht in der Liste")
liste = [1, 2, 3]
a = 2
if a not in liste:
print(f"{a} nicht in der Liste")
else:
print(f"{a} in der Liste")
params = {"name": "Hans", "alter": 20, "ort": "Mittweida"}
if "name" in params:
print(f"{params['name']}")
Schleifen ermöglichen die mehrfache Ausführung eins Codeblocks. Die typische Schleife in Python ist die for
-Schleife.
while
-Schleife:¶Eine while
-Schleife wird solange ausgeführt, bis die Schleifenbedingung falsch ist.
a = 5
# != ungleich
while a != 0:
print(a)
a = a - 1
Ein Programm das prüft, ob eine Zahl gerade oder ungerade ist.
a = 5
# % Prozent-Zeichen (Shift + 5), Modulo (Division mit Rest)
while a > 0:
if a % 2 == 0:
print(f"{a} ist gerade")
else:
print(f"{a} ist ungerade")
a = a - 1
a = 5
while a > 0:
if a / 2 == int(a / 2):
print(f"{a} ist gerade")
else:
print(f"{a} ist ungerade")
a = a - 1
for
-Schleife:¶Die for
-Schleife kann für alle Elemente verwendet werden, die "durchlaufbar" (iterierbar) sind. Dies gilt u.a. für Strings und Listen.
Der Block wird für jedes Element einmal ausgeführt.
for x in [1,2,3]:
print(x)
Zur Erinnerung: Die range
-Funktion gibt ebenfalls etwas iterierbares (die Elemente von 0
bis wert - 1
) zurück
for x in range(10):
print(x)
a = 5
while a > 0:
if a % 2 == 0:
print(f"{a} ist gerade")
else:
print(f"{a} ist ungerade")
a = a - 1
a = 5
for x in range(1, a + 1):
if x % 2 == 0:
print(f"{x} ist gerade")
else:
print(f"{x} ist ungerade")
Bei Strings wird durch die einzelnen Zeichen gelaufen.
for x in "Hallo":
print(x)
Auch Dictionaries können durchlaufen werden:
params = {"name": "Hans", "alter": 20, "ort": "Mittweida"}
for key, value in params.items():
print(f"{key} = {value}")
In einigen Fällen ist es praktisch, den Index während der Iteration zu haben. Dafür gibt es enumerate
:
for i, word in enumerate(["coden", "in", "python"]):
print(i, word)
for i, x in enumerate("Hallo"):
if x == "l":
print(f"l bei {i}")
if "l" in "Hallo":
print("l ist in Hallo")
Der größte Teil der Funktionalität in Python wird durch Module bereitgestellt. Die Python-Standardbibliothek ist eine große Sammlung von Modulen, die viele Funktionen wie z.B. Dateiein-/Ausgabe, Zeichenverarbeitung und Netzwerkkommunikation bereitstellt.
Um ein Modul in einem Python-Programm zu verwenden, muss es zunächst importiert werden. Ein Modul kann mit der Anweisung import
importiert werden. Um zum Beispiel das Modul math
zu importieren, das viele mathematische Standardfunktionen enthält:
import math
Dies importiert das komplette Modul und macht es verfügbar:
import math
math.cos(2 * math.pi)
math.pi
Alternativ können alle Symbole in den globalen Namensraum importiert werden:
from math import *
cos(2 * pi)
Dies macht das Programm aber schnell chaotisch, wenn man viele Module importiert und sich dann eventuell verschiedene Funktionen gegenseitig überschreiben. Daher ist der Import mit import math
empfohlen.
Alternativ können auch nur gezielt einzelne Symbole importiert werden:
from math import cos, pi
cos(2 * pi)
Die dir
-Funktion listet alle Felder eines Moduls auf
print(dir(math))
Und mit der Funktion help
können wir eine Beschreibung von (fast) jeder Funktion bekommen.
help(math.sqrt)
sqrt(4)
Weitere nützliche Module sind os
, sys
und re
. Siehe http://docs.python.org/3/library/ für die Dokumentation.
Eine Funktion in Python wird mit dem Schlüsselwort def
definiert, gefolgt von einem Funktionsnamen, der Parameterliste in ()
und einem Doppelpunkt :
. Der Funktionsinhalt wird eingerückt daruntergeschrieben.
Nachfolgend wird eine Funktion namens funktion
definiert. Diese nimmt keine Parameter an und gibt den Text test
aus.
def funktion():
print("test")
funktion()
Die Funktion laenge
akzeptiert einen Parameter und gibt die Länge als Text aus.
def laenge(s):
print(f"{s} enthält {len(s)} Zeichen")
laenge("Hallo")
laenge("Welt")
Funktionen können direkt mit einem "docstring" dokumentiert werden:
def laenge(s):
"""
Gibt String 's' und dessen Länge aus
"""
print(f"{s} enthält {len(s)} Zeichen")
Ein docstring kann mittels help
ausgelesen werden.
help(laenge)
Die Funktion quadrat
berechnet das Quadrat von x
und gibt diesen mit return
zurück
def quadrat(x):
return x ** 2
print(quadrat(4))
print(quadrat(10))
print(quadrat(5))
Parameter können auch benannt sein, dies macht insbesondere Sinn, wenn die Funktion sehr viele Parameter annimmt.
quadrat(x=4)
Umrechnungen zwischen Zahlensystemen
print(bin(10))
print(hex(10))
print(0xA)
print(0b1010)
def euklid(a, b):
"""
Berechnet den ggT von a und b mittels euklidischen Algorithmus.
"""
if a == 0:
return b
else:
while b != 0:
#print(f"a={a} b={b}")
if a > b:
a = a - b
else:
b = b - a
return a
print(euklid(44, 12))
print(euklid(12, 44))
print(euklid(100, 33))
print(euklid(b=12, a=44))
help(euklid)