Lektion 4: Python-Sprachelemente
- Reservierte Wörter
- Befehlstypen
- Ein- und Ausgaben
- Variablen und Datentypen
- Kontrollstrukturen
Reservierte Wörter
- Dürfen nicht für Bezeichner (Variablen, Functions usw.) verwendet werden
- Es gibt bei Version 3.7 ca. 30 reservierte Wörter
- Sind in der Hilfe und auf unzähligen Webseiten ausführlich beschrieben
Befehlstypen
- Befehl ist nicht gleich Befehl
- Befehle (z.B. break, for, if oder while)
- Befehlswörter (z.B. in oder from)
- Functions (z.B. print() oder input())
- Objekt-Functions (auch Methoden genannt)
- Operatoren
Ein- und Ausgaben in der Konsole
- Für Eingaben gibt es die input()-Function
- Für Ausgaben gibt es die print()-Function
- Bei Python 2.x war print noch ein Befehl (also ohne runde Klammern)
Formatierte Ausgabe
- Formatiert bedeutet, dass Zahlen und Datumswerte auf eine bestimmte Weise in eine Zeichenkette eingesetzt werden
- Für die Formatierung gibt es die format()-Function
- format() bietet viele Möglichkeiten, daher gibt es viele Details
- {} ist stets ein Platzhalter für einen Wert, der durch die format()-Function an dieser Stelle eingesetzt wird
Variablen
- Eine Variable speichert einen oder mehrere Werte während der Programmausführung
- Variablen werden nicht deklariert
- Der Typ des Werts gibt auch den Typ der Variablen an, z.B. int oder float
- Eine Variable, die keinen Wert besitzt, besitzt den Wert none
- Eine Variable besitzt einen Gültigkeitsbereich
Regeln für Variablennamen (1)
- Die erste Referenz sollte der PEP 8 Style Guide sein
- Ein Abschnitt heißt "Naming Styles"
- Die wichtigste Aussage ist: Es gibt keine verbindliche Vorgabe
- Wichtig ist, dass eine Schreibweise durchgehend verwendet wird
- Einige Python-IDEs zeigen "Verstöße" gegen PEP 8 mit Hilfe von Pylint im Quellcode an
- Pylint => Lektion 12 (https://www.pylint.org)
Regeln für Variablennamen (2)
- Meine bevorzugte Schreibweise ist mixedCase, z.B. anzahlVersuche
- Meine Empfehlungen für den Kurs:
- A) CapWords oder B) lower_case_with_underscores
- A) AnzahlVersuche B) anzahl_versuche
Datentypen (1)
- Der Datentyp steht für die "Sorte" des Wertes, den z.B. eine Variable enthält
- Es gibt theoretisch unendlich viele Datentypen
- Die wichtigsten Datentypen für den Alltagsgebrauch sind int, float, bool und str
- Python nimmt den Datentyp eines Wertes ernst, der Datentyp muss daher passen
- Über Konvertierungs-Functions wird z.B. aus einem int ein string
- Gute Übersicht bei Wikipedia
Datentypen (2)
Datentypen, die es nicht gibt
- Bei Python steht Einfachheit im Mittelpunkt
- Einige Datentypen anderer Programmiersprachen gibt es bei Python nicht
- Beispiele: byte, char oder Integer ohne Vorzeichen
- In Python gibt es keinen Pointer-Datentyp (Zeiger)
Operatoren (1)
- Neben den Standardoperatoren (+, -, / und *) besitzt Python eine Fülle an "Spezialoperatoren"
- // -> Division mit Ganzzahl als Ergebnis
- % -> Rest einer Division
- += -> Erhöhen und Zuweisen
Operatoren (2)
- ** -> Zweierpotenz
- << und >> -> bitweises verschieben
- if und else sind auch Operatoren (z.B. b = 1 if a == 3 else 2)
- Gute Übersicht: https://python-reference.readthedocs.io/en/latest/docs/operators/
Einrückungen bei Kontrollstrukturen
- Befehle wie if, for oder while besitzen keinen Abschlussbefehl
- Die dazugehörigen Befehle werden durch Einrücken festgelegt
- Mindestens ein Leerzeichen (üblich sind 4)
- Die Anzahl der Leerzeichen muss pro Block konstant sein
Einrückungen richtig und falsch
Entscheidungen
- Entscheidungen mit dem if-Befehl
- Bedingung in Gestalt eines Ausdrucks folgt auf den Befehl (keine runden Klammern erforderlich)
- Ausdruck ungleich 0 => True Ausgleich gleich 0 => False
- Für den Alternativzweig gibt es else-Befehl
- Für einen Alternativzweig mit einer Bedingung gibt es den elif-Befehl
- Es gibt bei Python keinen switch- oder select case-Befehl
- Tipp: Der pass-Befehl als Platzhalter
Entscheidungen mit dem if-Befehl (Teil 2)
Entscheidungen mit if und else
Entscheidungen mit if und elif
Mehrere Bedingungen prüfen
- Mit Hilfe der logischen Operatoren and und or
- Wenn alle Bedingungen erfüllt sein müssen - and
- Wenn nur eine Bedingung erfüllt sein muss - or
Logische Herausforderungen
- Am Anfang ist das richtige Kombinieren von if, elif und else nicht ganz einfach
- Konkretes Beispiel:
- Es auch soll eine Meldung ausgegeben werden, wenn die Eingabe eine Zahl ist, aber nicht im Bereich 1 bis 1000?
- Wie könnte eine Lösung aussehen?
elif und else kombinieren
Wiederholungen mit for
- Ein Befehlsblock wird eine festgelegte Anzahl oft wiederholt
- Die Anzahl wird durch die Elemente einer Liste festgelegt
- Die range()-Function liefert eine Liste von Zahlen
- Die enumerate()-Function liefert neben den Listenelementen auch eine Index-Variable (als Tupel-Werte)
Eine klassische Zählschleife mit for
Eine Zinsberechnung mit for
Wiederholungen mit while
- Die Wiederholungsbedingung wird zu Beginn der Wiederholung geprüft
- Es gibt keinen do-Befehl
Eingabewiederholung mit while und break
Wiederholungen vorzeitig verlassen oder beenden
- Der break-Befehl beendet eine Wiederholung
- Der continue-Befehl leitet einen weiteren Durchlauf der Wiederholung ein
Zusammenfassung
- Das Motto bei den Python-Befehlen ist Einfachheit
- Kontrollstrukturen werden durch Einrückungen festgelegt
- Für Entscheidungen gibt es die Befehle if, else und elif
- Für Wiederholungen gibt es die Befehle do und while
- Für die Steuerung von Wiederholungen gibt es die Befehle break und continue
Made with Slides.com