4.1 Syntax und Variablen

In diesem Kapitel erlernen Sie die grundlegende Syntax von Python sowie den Umgang mit Variablen und verschiedenen Datentypen.

Übersicht Allgemeine Syntax

In diesem Abschnitt erhalten Sie einen Überblick über die grundlegenden Syntaxelemente in Python, die die Regeln für das Schreiben und Strukturieren von Code darstellen.

Syntax Beschreibung Beispiel
Kommentar Ein Kommentar im Code, der nicht ausgeführt wird # Dies ist ein Kommentar
Zuweisung Zuweisung eines Wertes zu einer Variablen x = 5
Ausdruck (Expression) Eine Kombination aus Werten, Variablen und Operatoren y = x + 2 oder status = not status
Funktionsaufruf Aufruf einer Funktion mit oder ohne Argumente. Es gibt drei Arten von Funktionen:
(a) interne Funktionen
(b) externe Funktionen
(c) eigene Funktionen erstellt mit def tolleFunktion()

print("Hallo Welt")
sleep(2)
tolleFunktion()
Doppelpunkt : Verwendet nach Schlüsselwörtern wie if, for, def, etc. if x > 0:
Einrückung (Indentation) Einrücken von Code-Blöcken zur Strukturierung siehe Beispiel unter der Tabelle

Einrückungen in Python sind entscheidend, da sie die Struktur des Codes bestimmen. Jeder Codeblock, der beispielsweise zu einer Bedingung (if) oder einer Schleife (z.B. while oder for) gehört, muss eingerückt sein. Ein typisches Beispiel:

if x > 0:
    print("x ist positiv")
    y = x + 5

Auch hatten wir schon die Operatoren, die an dieser Stelle der Vorllständigkeit halber wiederholt werden.

A. Rechenoperatoren

Operator Erklärung Beispiel
= Zuweisung a = 5
+ Addition a + b
- Subtraktion a - b
* Multiplikation a * b
** Potenzierung a ** b
/ Division a / b
% Modulus (Restwert einer Division) a % b (z.B. 10 % 3 ergibt 1)
// Ganzzahlige Division a // b (z.B. 10 // 3 ergibt 3)
+= Addition und Zuweisung a += 3 (z.B. a = 2; a += 3 ergibt 5)
-= Subtraktion und Zuweisung a -= 2
*= Multiplikation und Zuweisung a *= 2
**= Potenzierung und Zuweisung a **= 2
/= Division und Zuweisung a /= 2
%= Modulus und Zuweisung a %= 3
//= Ganzzahlige Division und Zuweisung a //= 2

Was ist das Ergebnis?

zahl = 5
zahl += 10
print(zahl)

B. Vergleichsoperatoren (die als Ergebnis True / False liefern)

Operator Erklärung Beispiel
== Gleichheit a == b
!= Ungleichheit a != b
< Kleiner als a < b
> Größer als a > b
<= Kleiner oder gleich a <= b
>= Größer oder gleich a >= b
and Logisches UND a and b
or Logisches ODER a or b
not Logisches NICHT not a

Vergleichsoperatoren sind sehr wichtig, da damit if-Bedingungen und Schleifen (for, while) gesteuert werden.

if a == b:
    print("a un b sind gleich")

Die Operatoren and und or sind sehr wichtig, wenn man mehr als einen Vergleich benötigt.

Beispiel für die Verwendung von and und or

a = 5
b = 10
c = 15

# Verwendung von and: Beide Bedingungen müssen wahr sein
if a < b and b < c:
    print("a ist kleiner als b und b ist kleiner als c")

# Verwendung von or: Mindestens eine Bedingung muss wahr sein
if a > b or b < c:
    print("Mindestens eine der beiden Bedingungen ist wahr")

Logiktabelle für and

a b a and b
False False False
False True False
True False False
True True True

Logiktabelle für or

a b a or b
False False False
False True True
True False True
True True True

Logiktabelle für not

a not a
False True
True False

Weitere Details zu diesen Operatoren finden Sie in der offiziellen Python-Dokumentation zu den Operatoren.

Übersicht Variablentypen

Eine typische Variable mit einer Wertzuweisung ist breite = 42.

Regeln für die Benennung von Variablen

  1. Buchstaben, Ziffern und Unterstriche: Variablennamen dürfen nur Buchstaben (a-z, A-Z), Ziffern (0-9) und Unterstriche (_) enthalten. Allerdings darf ein Variablenname nicht mit einer Ziffer beginnen. Beispiele: breite, tiefe1.

  2. Keine reservierten Schlüsselwörter: Vermeiden Sie die Verwendung von Python-Schlüsselwörtern (z.B. if, else, while), da diese spezielle Bedeutungen haben und zu Syntaxfehlern führen können. Eine Liste der reservierten Schlüsselwörter finden Sie in der Python-Dokumentation.

  3. Keine deutschen Umlaute und Leerzeichen: Verwenden Sie keine deutschen Umlaute (ä, ö, ü) oder Leerzeichen in Variablennamen, da diese zu Kompatibilitätsproblemen führen können. Stattdessen sollten Sie ae, oe, ue verwenden. Beispiel: maxHoehe statt maxHöhe.

  4. Aussagekräftige Namen: Wählen Sie Namen, die den Inhalt oder Zweck der Variablen beschreiben. Dies erleichtert das Verständnis des Codes. Beispiel: Verwenden Sie temperatur statt temp.

  5. Kleinschreibung: Gemäß der PEP 8-Richtlinie sollten Variablennamen in Python normalerweise in Kleinbuchstaben mit Unterstrichen geschrieben werden, z.B. max_temperatur. Da jedoch in vielen Programmiersprachen die CamelCase-Schreibweise bevorzugt wird, wollen wir auch in diesem Kurs CamelCase verwenden. Beispiel: maxTemperatur statt max_temperatur.

  6. Konstanten: Für Konstanten, die sich während der Programmausführung nicht ändern sollen, verwenden Sie Großbuchstaben. Beispiel: PI = 3.14159.

  7. Vermeiden Sie einbuchstabige Namen: Außer in Schleifenindizes (z.B. i, j) sollten einbuchstabige Variablennamen vermieden werden, da sie den Code weniger verständlich machen.

Folgende Variablentypen können in Python zur Speicherung und Verarbeitung von Daten verwendet werden.

Was kann alles in einer Variable gespeichert werden?

Typ Beschreibung Beispiel
Integer
int()
Ganze Zahlen, z.B. 42
ist uns schon bekannt
breite = 42
Float
float()
Gleitkommazahlen, z.B. 3.14
ist uns schon bekannt
temperatur = 3.14
String
str()
Text, z.B. "Hallo Welt"
ist uns schon bekannt
begruessung = "Hallo Welt"
Boolean
bool()
Wahrheitswerte, z.B. True oder False
ist uns schon bekannt
istAktiv = True
List
list()
Listen von Werten, z.B. [1, 2, 3]
schauen wir uns gleich an
zahlen = [1, 2, 3]
Dictionary
dict()
Schlüssel-Wert-Paare, z.B. {"key": "value"}
schauen wir uns gleich an
person = {"name": "Alice"}
Tuple
tuple()
Unveränderliche Listen, z.B. (1, 2, 3)
wird in diesem Semester nicht betrachtet
koordinaten = (1, 2, 3)
Set
set()
Mengen von eindeutigen Werten, z.B. {1, 2, 3}
wird in diesem Semester nicht betrachtet
einzigartigeZahlen = {1, 2, 3}
Object
object()
Instanzen von Klassen oder andere Objekte
wird später erklärt
led = Pin()

Beispielsweise kann mit int() eine Kommazahl in einen Integer umgewandelt werden. Mit diesen angegebenen Funktionen kann also eine Umwandlung stattfinden. Wichtig sind für uns zunächst einmal int(), float(), str() und bool().

# Float-Zahl als Ausgangspunkt
floatZahl = 42.58

# Umwandeln der Float-Zahl in eine Ganzzahl
ganzZahl = int(floatZahl)
print(ganzZahl)

Wir schauen uns nun die Variablentypen List und Dictionary an

Typ Beschreibung Beispiel
List Listen von Werten, z.B. [1, 2, 3] zahlen = [1, 2, 3]
Dictionary Schlüssel-Wert-Paare, z.B. {"key": "value"} person = {"name": "Alice"}

Wann verwendet man List?

Listen werden verwendet, wenn man eine geordnete Sammlung von änderbaren Elementen benötigen (die sich ändern lassen). Sie eignen sich gut für Sequenzen von ähnlichen Objekten, auf die man in der Reihenfolge ihres Einfügens zugreifen möchten. Listen werden in anderen Programmiersprachen (indizierte) Arrays genannt.

Beispiele für Listen

zahlen = [1, 2, 3, 4, 5]
gemischt = [1, "Hallo", 3.14, True]
verschachtelt = [1, [2, 3], ["a", "b", "c"]]

Wie man eine List füllt und Werte ausliest

  • Füllen:
    meineListe = [1, 2, 3]
    meineListe.append(4)
    
  • Auslesen:
    erstesElement = meineLliste[0]
    

Wann verwendet man ein Dictionary?

Dictionaries sind ideal, wenn Sie eine ungeordnete Sammlung von Schlüssel-Wert-Paaren benötigen. Sie sind besonders nützlich, wenn Sie Daten nach einem eindeutigen Schlüssel suchen oder speichern müssen. Dictionaries werden in anderen Programmiersprachen (assoziative) Arrays genannt.

Beispiele für Dictionaries

person = {"name": "Alice", "ort": "Wunderland"}
gemischt = {"zahl": 42, "text": "Hallo", "istAktiv": True}
verschachtelt = {"person": {"name": "Bob", "alter": 25}, "adresse": {"stadt": "Berlin", "plz": 10115}}

Wie man ein Dictionary füllt und Werte ausliest

  • Füllen:
    meinDictionary = {"name": "Alice", "alter": 9}
    meinDictionary["ort"] = "Wunderland"
    
  • Auslesen:
    name  = meindictionary["name"]   # damit enthält die Variable name einen String
    alter = meindictionary["alter"]  # damit enthält die Variable alter einen Integer
    

Pi Pico Script

Wir nehmen nur das Pi Pico-Board und lassen die interne LED blinken.

Pi Pico

Ursprüngliches Script

# Interne LED blinken lassen 
# J. Thomaschewski, 12.08.2024
from machine import Pin
from time import sleep
led = Pin('LED', Pin.OUT)
while True:
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)

Erweitert mit einer List

# Interne LED blinken lassen 
# J. Thomaschewski, 12.08.2024
from machine import Pin
from time import sleep

data = ['LED', 0.5, 1.2]

led = Pin(data[0], Pin.OUT)
while True:
    led.on()
    sleep(data[1])
    led.off()
    sleep(data[2])

Aufgabe

  • Welche Vorteile und welche Nachteile hat diese Schreibweise?
  • Nutzen Sie nun ein Dictionary statt einer List
  • Welche Vorteile und welche Nachteile hat dies dann? Was gefällt ihnen besser?