Mit `print` können Werte ausgegeben werden. Mit einer f-String lassen sich Variablen direkt innerhalb Strings verwenden.
print("Hallo") # Ausgabe: Hallo print(1.23) # Ausgabe: 1.23 # Beispiel einer f-String a = 12 print(f"der Wert der Variable ist {a}") # ^ Ausgabe: der Wert der Variable ist 12
Mit Variablen lassen sich Werte zwischenspeichern. Variablen werden mit = gesetzt.
Ein Wert einer Variable hat immer einen bestimmten Datentyp.
Strings sind Zeichenketten, also Text. String können mit + verkettet und auch mit einer Zahl multipliziert werden.
a = "Hello" b = "World" print(a+b) # Ausgabe: HelloWorld c = "Ha" print(3*c) # Ausgabe: HaHaHa
Mit den Typen int und float können ganze bzw. Fliesskommazahlen gespeichert werden.
Mit Zahlen können übliche mathematische Operationen durchgeführt werden.
a = 12 # int b = 2.5 # float # Gibt die Summe von a und b aus. print(a+b)
Der Typ bool ist immer entweder True oder False. Er kommt zum Beispiel bei Vergleichen zwischen Werten zustande.
success = True
Mit input(msg) kann Text vom Benutzer eingelesen werden. Es wird dabei msg ausgegeben und dann die Eingabe eingelesen, bis Enter
gedrückt wird. Die Eingabe wird dann als string zurückgegeben.
typed = input("Geben sie eine Zahl ein: ") # Beachten sie, dass die Zahl hier explizit noch von einer String umgewandelt werden muss. number = int(typed) print(f"Das doppelte davon ist {2*number}")
Alle Beispiele haben jeweils den Wert True!
| Operator | Funktion | Beispiel |
|---|---|---|
+ | Addition | 5+3==8 |
- | Subtraktion | 5-3==2 |
* | Multiplikation | 5*3==24 |
/ | Division | 5/2==2.5 |
// | Ganzzahldivision | 5//2==2 |
% | Divisionsrest | 5%2==1 |
** | Potenzierung | 5**2==25 |
Die Vergleichsoperatoren können jeweils Variablen miteinander vergleichen, sofern der Vergleich Sinn ergibt und definiert ist. Man kann zum Beispiel zwei Strings auf Gleichheit, aber nicht mit “grösser als” Vergleichen.
| Operator | Funktion | Beispiel |
|---|---|---|
== | gleich | 5==5 |
!= | ungleich | 5!=4 |
> | grösser als | 5>3 |
< | kleiner als | 2<3 |
>= | grösser oder gleich | 4>=4 |
<= | kleiner oder gleich | 2<=4 |
and und or Vergleichen zwei Wahrheitswerte miteinander und machen das, was man erwarten würde.
not vertauscht True und False für den nachfolgenden Wert.
| Operator | Funktion | Beispiel |
|---|---|---|
and | und | True and (5 == 5) |
or | oder | (5 == 5) or (6 > 7) |
not | nicht | not (5!=5) |
Wahrheitstabelle
a | b | a and b | a or b | not a |
|---|---|---|---|---|
| False | False | False | False | True |
| True | False | False | True | False |
| False | True | False | True | True |
| True | True | True | True | False |
Mit if kann Code bedingt ausgeführt werden. Dazu muss dem if eine Bedingung gegeben werden, was einem Wahrheitswert entspricht,
welche zum Beispiel aus einem Vergleich entstehen kann. Danach folgt ein Doppelpunkt : und darunter der Code, der unter der
Bedingung laufen sollte. Dieser Code wird eingerückt.
a = 7 if True: print("Diese Verzweigung wird immer genommen") if a > 5: print("a ist grösser als 5") print("Dieser Code ist nicht mehr Teil des ifs, da er nicht eingerückt ist")
Mit einem else kann man einem if eine Alternative geben. In dem Fall wird immer entweder das if oder das else
ausgeführt, aber nie beides.
a = 7 if a % 2 == 0: print("a ist eine gerade Zahl") else: print("a ist eine ungerade Zahl")
Mit einem elif können mehrere Bedingungen aneinandergefügt werden, die nacheinander geprüft werden, bis eine davon zutrifft.
Ähnlich wie bei der if-else-Kombination wird immer nur genau einen Abschnitt davon ausgeführt.
a = 7 if a > 10: print("a ist grösser als 10") elif a > 5: print("a ist grösser als 5") else: print("a ist höchstens 5")
Eine while-Schleife ist sehr ähnlich wie ein if aufgebaut. Der Unterschied liegt darin, dass die Schleife so lange
wiederholt ausgeführt wird, bis die Bedingung nicht mehr zutrifft.
Achtung: Mit while-Schlaufen lassen sich sehr leicht Programme erstellen, die endlos weiterlaufen. Sollte dies
Zutreffen lässt sich ein Python-Programm mit Ctrl+C sofort beenden.
# Dieses Programm zählt von 5 bis 1 runter. counter = 5 while counter > 0: print(counter) counter -= 1
Mit einer for-Schleife lässt sich Code einmal für jedes Element in einer Sammlung ausführen.
Der Syntax ist dabei for element in collection:, wobei collection eine Sammlung von Elementen ist
und element bei jeder Wiederholung der Schleife ein Element davon darstellt.
Wir haben uns noch nicht weiter mit Sammlungen beschäftigt, das könnte zum Beispiel eine Liste sein.
Was häufig benutzt wird ist range(), was eine Folge von Zahlen darstellt.
# Beispiele für range() # Ein Argument: es wird von 0 bis eins vor der Zahl gezählt range(5) # 0, 1, 2, 3, 4 # Zwei Argumente: es wird von der ersten bis eines vor der zweiten Zahl gezählt range(3, 8) # 3, 4, 5, 6, 7 # Ein drittes Argument kann optional noch die Schrittweite angeben range(4, 8, 2) # 4, 6 # Dieses Programm zählt von 0 bis 7 for i in range(8): print(i)
Eine Liste a hat eine Anzahl Einträge len(a), die von 0 bis len(a)-1 indiziert sind. Die Einträge sind beliebige Python-Werte, auch Array oder komplexere Objekte. Die Einträge können unterschiedliche Typen haben.
# Array mit 3 Einträgen a = [23,42,123] print(f"a ist {a} und hat {len(a)} Elemente") print(f"a[0]={a[0]}, a[2]={a[2]}")
Einträge können verändert werden:
a = [23,42,123] a[1] = 4321 # a ist jetzt [23,4321,123]
Loop über die Einträge eines Arrays:
a = [23,42,123] for e in a: print(f"e ist {e}")
Elemente hinten anfügen:
quadrate = [] for i in range(10): quadrate.append(i*i) print(f"Quadratzahlen {quadrate}")
Initialisierung in einer Zeile (ergibt gleiches Array mit Quadratzahlen wie der obige Code):
q = [n*n for n in range(10)]
Dictionaries sind wie Listen, wobei die Elemente aber keine Zahlen als Indizies haben, sondern beliebige Zeichenketten (Schlüssel). Man spricht auch von Schlüssel-Wert-Paaren.
Initialisierung und Zugriff
person = {"Alter":34, "Einkommen":6540, "Vorname": "Hans", "Name": "Wurst"} print(person["Name"]) # Gibt Hans aus person["Name"] = "Dampf" # Namensänderung ;-) schluessel = person.keys() # Liste mit allen Schlüsseln, hier ["Alter","Einkommen", "Vorname", "Name"] leer = {} # Leerer Dictionary
Wiederholungen
for schluessel in person: # Für jeden Schlüssel wiederholen print(f"Zu Schlüssel {schluessel} gehört der Wert {person[schluessel]}") for schluessel, wert in person.items(): # Für jedes Schlüssel-Wert-Paar wiederholen. print(f"Zu Schlüssel {schluessel} gehört der Wert {wert}")
Existenz von Schlüsseln überprüfen
if "Alter" in person: # Gibt es den Schlüssel "Alter" im Dictionary person? # tu was