Programmieren mit PythonGrundlagen
Beginnen wir damit uns einen Grundwortschatz für die Elemente eines Programms zu erarbeiten. Viele der Begriffe stammen aus dem Englischen. Auch wenn es für die meisten dieser Begriffe deutsche Übersetzungen gibt ist es oft einfacher, bei den englischen zu bleiben, nachdem sie einmal erklärt wurden, da sie auch so in Python (bzw. in anderen Programmiersprachen) verwendet werden. Dieser Abschnitt bietet einen Überblick: Einige dieser Begriffe werden in späteren Abschnitten genauer behandelt.
Objekte
Ein Objekt ist eine grundlegende Einheit, die von einem Programm manipuliert werden kann. Objekte haben Typen; zum Beispiel ist 5
ein int
(kurz für "integer", eine Ganzzahl) und "Hallo Welt!"
ist ein str
(kurz für "string", eine Zeichenkette bzw. Text). Typen sind für den Computer wichtig, um den Überblick zu behalten, da Objekte je nach Typ unterschiedlich gespeichert werden.
Du kannst den Typ eines Objekts mit dem Befehl type
überprüfen. Zum Beispiel gibt type("Hallo")
als Ergebnis str
zurück.
Übung.
Verwende den folgenden Codeblock, um den Typ von 1.0
zu bestimmen. Hat 1.0
den gleichen Typ wie 1
?
# ersetze diesen Text durch Code und drücke zum Ausführen die Eingabetaste mit gedrückter Umschalttaste.
(Hinweis: du hast wahrscheinlich die Meldung Loading or None returned
bemerkt, die kurz beim Ausführen der Zelle angezeigt wurde. Wenn diese Meldung für mehr als 10 Sekunden erscheint, ist es wahrscheinlich, dass die Zelle erfolgreich ausgeführt wurde, aber als Ergebnis nichts zu zeigen hat. Wir werden das in Kürze näher besprechen.)
Variablen
Eine Variable ist ein Name, der verwendet wird, um auf ein Objekt zu verweisen. Wir können ein Objekt (z.B. 41
) wie folgt einer Variablen (z.B. Alter
) zuweisen :
Alter = 41
Wir sagen, dass 41
der Wert der Variablen Alter
ist.
Variablennamen müssen mit einem Unterstrich oder Buchstaben beginnen und dürfen danach nur Buchstaben, Zahlen und Unterstriche enthalten. Buchstaben können in Groß- oder Kleinschreibung sein, wobei die Groß- und Kleinschreibung einen Unterschied macht. Zum Beispiel ist neueWerte0
ein stop!
ist ein
Das einer Variablen zugeordnete Objekt kann durch weitere Zuweisungen beliebig oft geändert werden.
Übung.
Finde den Wert den x
am Ende des folgenden Codeblocks hat.
x = 3
y = x
x = x + 1
x = y
Lösung. Der Wert 3 wird x
und dann auch y
in der zweiten Zeile zugewiesen. Nach der dritten Zeile ist der Wert von x
gleich 4, da sich die rechte Seite zu 4 ergibt und dann der Variablen x
zugeordnet wird. Nach der vierten Zeile ist 3
wieder der Wert von x
, da der Wert von y
bei der Ausführung der vierten Zeile immer noch 3 ist.
Übung.
Verwende den folgenden Codeblock, um herauszufinden, was passiert, wenn du versuchst, eine Variable zu verwenden, der kein Objekt zugewiesen wurde: Du erhältst einen
anzahl_karotten = 4 anzahl_Karrotten
Beachte, dass du bei Auftreten eines Fehlers in deinem Code einen Traceback erhältst, der dir hilft, die Fehlerquelle zurückzuverfolgen. ("trace back" bedeutet zurückverfolgen). Damit kein Fehler ausgelöst wird müsste die Variable 'anzahl_Karotten' anders geschrieben werden, nämlich
Funktionen
Eine Funktion führt eine bestimmte Aufgabe aus. Beispielsweise schreibt print(x)
den Wert der Variablen x
als String (Zeichenkette) auf den Bildschirm. (Wenn hier von einer Zeichenkette oder einem Text die Rede ist werden wir von nun an immer den englischen Begriff String verwenden!)
Die Aufforderung an eine Funktion, ihre Aufgabe auszuführen, wird als Aufruf der Funktion bezeichnet. Funktionen werden mit Klammern hinter dem Funktionsnamen aufgerufen, und alle Objekte, die von der Funktion benötigt werden, werden zwischen diesen Klammern bereitgestellt, getrennt durch Kommas. Diese Objekte werden als Argumente bezeichnet.
Einige Funktionen, wie z.B. print
, sind schon in die Sprache integriert und immer verfügbar. Du kannst auch eigene Funktionen definieren, indem du def
verwendest:
def schreibe_zweimal(x): print(x) print(x) schreibe_zweimal("Holladaroh!")
def
ist ein Beispiel für ein Schlüsselwort: ein Name mit einer besonderen Bedeutung in der Sprache. Da es eine besondere Bedeutung hat, darf ein Schlüsselwort nicht als Variablenname verwendet werden.
Beachte, dass die Codezeilen, die ausgeführt werden sollen wenn die Funktion aufgerufen wird, vier Leerzeichen in Bezug auf def
eingerückt sein müssen . Zum Beispiel die Zeile schreibe_zweimal("Holladaroh")
Eine Funktion kann eine Aktion ausführen, wie z.B. schreibe_zweimal
, oder sie kann ein Objekt zurückgeben . So wird beispielsweise nach dem Ausführen des folgenden Codeblocks das Objekt 28
der Variablen y
zugeordnet.
def addiere_eins(x): return x + 1 y = 20 + addiere_eins(7) y
(Hinweis: Wir setzen y
allein auf die letzte Zeile, damit wir den Wert von y
im Ausgabebereich sehen können. Wenn eine Zuweisung (wie y = 20 + addiere_eins(7)
) die letzte Zeile in der Zelle ist, dann wird kein Wert gedruckt, und wir erhalten die Meldung Loading or None returned.
)
Der Variablenname x
im obigen Block wird als Parameter bezeichnet. Variablen spielen bei der Definition einer mathematischen Funktion die gleiche Stellvertreterrolle wie Parameter (z.B. wenn die Quadratfunktion in der Schreibweise
Ein Operator ist eine spezielle Art von Funktion, die auf besondere Weise aufgerufen werden kann. So wird beispielsweise der Multiplikationsoperator *
wie in der Mathematik üblich aufgerufen: 3 * 5
.
Übung
Ordne die folgenden Operatorbeschreibungen in der Reihenfolge an, wie der entsprechende Python-Operator in der Liste +, **, *, //, /
. Möglicherweise musst du mit dem untenstehenden Codeblock etwas herumprobieren.
print(6 + 11) print(2**3) print(3 * 4) print(7//2) print(7/2)
Anweisungen und Ausdrücke
Eine einzelne ausführbare Codeeinheit in Python wird als Anweisung bezeichnet. Beispielsweise ist die Zuordnungalter = 41
eine Anweisung. Anweisungen können Ausdrücke beinhalten, d.h. Kombinationen von Werten, Variablen, Operatoren und Funktionsaufrufen, die eine Sprache interpretiert, auswertet und als Wert zurückgibt. Beispielsweise ist 1 + alter + abs(3*-4)
ein Ausdruck, der zu abs
die Absolutbetragsfunktion ist und dass alter
auf den zuvor im Absatz angegebenen Wert gesetzt wurde).
Übungdef f(x): return x*x
ist
2 + 3*f(4)
ist
y = 13
ist
myName = "John" + "Doe"
ist
Übungen
Übung
(Versuche es ohne den Code auszuführen.) Der Ausdruck 1 + 5//3 + 2**3
ergibt
Übung
(Versuche es ohne den Code auszuführen.) Der Ausdruck 11/2-11//2-3
ergibt
Übung
Finde den Wert den x
am Ende des folgenden Codeblocks hat.
x = 3**2
x = x + 1
x = x + 1
y = x//2
x = y*y
z = 2*x
Übung
Schreib eine Funktion f
, die eine positive ganze Zahl n
als Eingabe annimmt und die $n$te positive ungerade Zahl zurückgibt. Du solltest die ganze Zeile mit dem Schlüsselwort pass
im folgenden Codeblock ersetzen (der Rest des Codes prüft ab der vierten Zeile, ob deine Funktion funktioniert).
Beachte auch, dass du zwei Felder zur Verfügung hast: das erste ist zum Ausprobieren und das zweite zum Speichern deiner Antwort. Wenn du mit deinem Code zufrieden bist, kopiere ihn und füge ihn in das zweite Feld ein.
def f(n): pass # hier Code einfügen def test_f(): assert f(3) == 5 assert f(1) == 1 assert f(100) == 199 return "Tests bestanden!" test_f()
Übung
Wähle die wahren Aussagen aus.
kontostand = 46.04
weist der Variablen kontostand
den Wert 46.04
zu. 33
ist eine Variable.