Python-Grundlagen: Werte, Variablen und Ausdrücke

Schreibe und führe deine ersten Python-Programme aus. Lerne, wie Python ganze Zahlen, Dezimalzahlen und Text speichert, wie Variablen Werte benennen und aktualisieren und wie Operatoren und die Reihenfolge der Rechenoperationen aus Werten Ergebnisse machen. Lies Eingaben der Benutzerin oder des Benutzers, wandle sie in den richtigen Datentyp um, gib Ergebnisse übersichtlich aus, erkläre deinen Code mit Kommentaren und behebe Fehler mithilfe von Fehlermeldungen.

AnfängerEinheit 1 von 10 in Kurs: Python-Programmierung – Schleifen, Funktionen, Listen und Dateien

Was du lernst

  1. Führe Python-Code in der interaktiven Shell und als gespeicherte Skriptdatei aus, verfolge den Ablauf eines Programms von oben nach unten, behebe Fehler mithilfe von Fehlermeldungen und erkläre Code mit Kommentaren.
    • Code in der Shell und als Skript ausführen
      Unterscheide die interaktive Shell von einer gespeicherten Programmdatei, führe Code auf beide Arten aus und sage voraus, was jeweils auf dem Bildschirm erscheint.
    • Fehlermeldungen lesen und häufige Fehler beheben
      Erkenne Syntaxfehler, Laufzeitfehler und Logikfehler, lies einen Traceback von unten nach oben und behebe die häufigsten Anfängerfehler.
    • Code mit Kommentaren erklären
      Schreibe Kommentare, die beim Verständnis eines Programms helfen, und erkenne, welchen Text Python ignoriert und welchen es weiterhin als Code oder Daten behandelt.
  2. Erkenne die grundlegenden Arten von Werten, mit denen Python arbeitet (ganze Zahlen, Dezimalzahlen, Text und Wahrheitswerte), und schreibe sie jeweils richtig in Code.
    • Werte und Datentypen unterscheiden
      Bestimme den Datentyp eines Werts, prüfe ihn mit type() und erkläre, warum der Datentyp darüber entscheidet, was du mit einem Wert tun kannst.
    • Ganze Zahlen und Dezimalzahlen schreiben
      Schreibe int- und float-Literale richtig, auch bei sehr großen und sehr kleinen Zahlen, und erkläre, warum float-Ergebnisse manchmal leicht abweichen.
    • Text als Zeichenketten schreiben
      Erstelle Zeichenketten mit einfachen, doppelten und dreifachen Anführungszeichen, füge Anführungszeichen und Sonderzeichen ein und unterscheide Text von Code.
  3. Gib Werten durch Zuweisung Namen, wähle gültige und klare Namen und verfolge, wie sich die Werte von Variablen während der Ausführung eines Programms ändern.
    • Variablen Werte zuweisen
      Erstelle Variablen mit Zuweisungen, erkläre die Bedeutung des Gleichheitszeichens in Python und verwende Variablen in späteren Anweisungen.
    • Gültige und aussagekräftige Variablennamen wählen
      Beachte Pythons Regeln und Stilkonventionen für Namen, vermeide Schlüsselwörter und eingebaute Namen und wähle Namen, die die Bedeutung eines Werts erkennen lassen.
    • Variablen aktualisieren und einen Programmablauf nachvollziehen
      Ändere Variablen mit erweiterten Zuweisungen, tausche zwei Werte korrekt und verfolge ein Programm mit einer Ablauftabelle Zeile für Zeile, um seine Ausgabe vorherzusagen.
  4. Erstelle Ausdrücke mit Pythons arithmetischen und Textoperatoren, sage ihre Ergebnisse und Datentypen voraus und verwende die Reihenfolge der Rechenoperationen und Klammern, um das Gewünschte zu berechnen.
    • Arithmetische Operatoren verwenden
      Rechne mit +, -, *, /, //, % und ** und sage voraus, ob das jeweilige Ergebnis ein int oder ein float ist.
    • Die Reihenfolge der Rechenoperationen anwenden
      Sage voraus, wie Python einen Ausdruck mit mehreren Operatoren auswertet, und verwende Klammern, damit die gewünschte Berechnung erfolgt.
    • Mengen mit abrundender Division und Rest aufteilen
      Teile mit // und % eine Menge in ganze Gruppen und einen Rest auf und wende die Operatoren auf Zeit, Geld und Ziffern an.
    • Text und Zahlen in Ausdrücken kombinieren
      Verknüpfe und wiederhole Zeichenketten mit + und * und sage voraus, was passiert, wenn ein Ausdruck ganze Zahlen, Gleitkommazahlen und Zeichenketten mischt.
  5. Schreibe vollständige kurze Programme, die Daten von Benutzerinnen und Benutzern abfragen, sie in den richtigen Datentyp umwandeln, damit rechnen und die Ergebnisse übersichtlich ausgeben.
    • Werte zwischen Datentypen umwandeln
      Verwende int(), float(), str() und round(), um einen Wert umzuwandeln oder zu runden, sage das Ergebnis voraus und erkenne Umwandlungen, die fehlschlagen.
    • Ergebnisse mit print() ausgeben
      Zeige Text und Werte mit print() an, steuere Abstände und Zeilenabschlüsse mit sep und end und gestalte gut lesbare Ausgaben.
    • Eingaben lesen und ein vollständiges Programm schreiben
      Frage mit input() Daten ab, wandle sie vor der Berechnung um und verbinde Eingabe, Verarbeitung und Ausgabe zu einem kurzen funktionsfähigen Programm.

Variablen in Python einfach erklärt

5 Kapitel

1

Code ausführen und das Ergebnis verstehen

Ein kurzes Programm lässt sich leichter verstehen, wenn du weißt, wo du es ausführst und was du auf dem Bildschirm erwarten kannst. Beginne mit schnellen Versuchen in der Python-Shell und speichere dann eine Folge von Anweisungen, damit du sie erneut ausführen kannst. Lerne, eine unsichtbare Berechnung von einer ausgegebenen Anzeige zu unterscheiden, Hinweise in Fehlermeldungen zu lesen und nützliche Kommentare für die nächste Person zu hinterlassen, die deinen Code liest. Das könntest du selbst eine Woche später sein.

1.1 Die Shell und ein gespeichertes Programm

Ein Programm ist eine Folge von Anweisungen. Der Python-Interpreter liest Python-Code und führt diese Anweisungen aus. Verwende Python 3, wo ein Aufruf wie print("Hello") Klammern hat.

Eine Zeile in der Shell ausprobieren

Die interaktive Shell, auch REPL genannt, zeigt >>>, wenn sie für Python-Code bereit ist. Gib nach der Eingabeaufforderung eine Anweisung ein und drücke die Eingabetaste. Das >>> gibst du nicht selbst ein.

>>> 3 + 4
7
>>> "hi"
'hi'

Die Shell zeigt den Wert eines Ausdrucks automatisch an. Sie setzt eine Zeichenkette in Anführungszeichen, um sie als Text kenntlich zu machen. Die Eingabeaufforderung ... bedeutet, dass eine Anweisung unvollständig ist und Python auf weitere Eingaben wartet. Beispielsweise kann zu einer öffnenden Klammer noch die schließende fehlen. Gib bei einer bereiten Eingabeaufforderung exit() ein, um die Shell zu verlassen.

Die Shell ist nützlich, um einen einzelnen Ausdruck zu testen. Sie kann einen Befehlsverlauf speichern, aber dieser Verlauf ist kein gespeichertes Programm. Setze Anweisungen, die du erneut gemeinsam ausführen möchtest, in ein Skript.

Ein Skript speichern und ausführen

Ein Skript ist eine reine Textdatei mit Code und der Endung .py. Verwende einen Code-Editor wie IDLE, Thonny oder VS Code. IDLE gehört zur Standarddistribution von Python. Eine Textverarbeitung kann gerade Anführungszeichen in typografische Anführungszeichen ändern; diese können Python-Zeichenketten nicht begrenzen.

Gib diese Zeilen im Editor ein und speichere das Skript:

print("Hello, world!")
print("Welcome to Python.")

Wähle in IDLE Run → Run Module oder drücke F5. Die Ausgabe lautet:

Hello, world!
Welcome to Python.

Python führt diese Anweisungen von oben nach unten aus. Jeder print()-Aufruf zeigt seinen Text an und beginnt eine neue Zeile. Wenn du die Anweisungen umkehrst, kehrt sich die Ausgabe um.

Du kannst ein gespeichertes Skript auch von einem Terminal aus ausführen. Öffne den Ordner mit deinem Skript und gib den Interpreterbefehl gefolgt vom gespeicherten Namen ein. Unter macOS oder Linux ist der Befehl üblicherweise python3 gefolgt vom Skriptnamen; unter Windows wird häufig python oder py verwendet. Der Terminalbefehl startet den Interpreter und gibt an, welches Skript er ausführen soll. Dieser Befehl gehört an die Eingabeaufforderung des Terminals, nicht hinter Pythons >>>. Ein Online-Editor kann stattdessen eine Schaltfläche zum Ausführen bereitstellen.

Entscheiden, was ausgegeben werden muss

Ein Skript, das nur 3 + 4 enthält, berechnet einen Wert, zeigt aber nichts an. Schreibe print(3 + 4), um 7 anzuzeigen. Ebenso zeigt print("hi") den Text ohne die umgebenden Anführungszeichen. Die Anführungszeichen gehören zum Code; sie markieren Anfang und Ende des Textes.

Python beachtet die Groß- und Kleinschreibung. print und Print sind verschiedene Namen, sodass Print("hi") einen NameError erzeugt, sofern dieser eigenständige Name nicht definiert wurde. Übernimm Schreibweise und Groß- und Kleinschreibung eingebauter Namen genau wie angegeben.

Auch vorangestellte Leerzeichen haben eine Bedeutung. Beginne bei diesen einfachen Folgen von Anweisungen jede Anweisung am linken Rand. Eine versehentliche Einrückung vor print("hi") kann IndentationError: unexpected indent verursachen. Leerzeichen innerhalb des Textes in Anführungszeichen sind etwas anderes: Python gibt sie als Teil der Nachricht aus.

Wichtige Erkenntnisse

  • Die Shell zeigt Ausdruckswerte automatisch an; ein Skript benötigt print(), um sie anzuzeigen.
  • Speichere wiederverwendbare Anweisungen als Python-Skript in einer reinen Textdatei.
  • Führe Terminalbefehle im Terminal und Python-Anweisungen in der Shell oder im Editor aus.
  • Die Reihenfolge der Anweisungen, Groß- und Kleinschreibung sowie vorangestellte Leerzeichen können den Ablauf ändern.

1.2 Mit einer Fehlermeldung die nächste Korrektur finden

Ein Fehler in einem Programm ist ein Programmfehler. Ihn zu finden und zu beheben, heißt Fehlersuche und Fehlerbehebung. Bestimme zuerst, welche Art von Problem vorliegt: Code, den Python nicht lesen kann, eine Operation, die während der Ausführung fehlschlägt, oder ein Ergebnis, das schlicht falsch ist.

Drei Arten von Problemen
ArtWas passiertBeispiel
SyntaxfehlerPython kann den Code nicht lesen; das Skript startet nicht.In print("hi" ist eine Klammer nicht geschlossen.
LaufzeitfehlerDie Ausführung erreicht eine Operation, die fehlschlägt, und stoppt dort.10 / 0 löst ZeroDivisionError aus.
LogikfehlerDer Code läuft, berechnet aber das falsche Ergebnis.88 + 92 / 2 ist nicht das arithmetische Mittel von 88 und 92.

Python prüft vor der Ausführung die Syntax des gesamten Skripts. Ein Syntaxfehler nahe dem Ende verhindert sogar die Ausführung der ersten Zeile. Bei einem Laufzeitfehler ist das anders: Frühere Anweisungen wurden bereits ausgeführt und ihre Ausgabe bleibt sichtbar.

Beim arithmetischen Mittel erfolgt die Division vor der Addition. Python berechnet 92 / 2 als 46.0 und addiert dann 88, sodass 134.0 herauskommt. Der gewünschte Ausdruck ist (88 + 92) / 2, der 90.0 ergibt. Es gibt keine Fehlermeldung, weil beide Ausdrücke zulässig sind. Eine Rechnung von Hand liefert dir einen Vergleich für das Programm.

Einen Traceback von unten lesen

Angenommen, der Code lautet:

name = "Ada"
print("Hello", nme)

Der Traceback endet mit einer Meldung wie NameError: name 'nme' is not defined. Die letzte Zeile nennt den Fehler und erklärt, was fehlgeschlagen ist. Darüber zeigt Python die Stelle, die Zeilennummer und den Code. Vergleiche nme mit dem Namen, dem zuvor ein Wert zugewiesen wurde: name. Wenn du die Schreibweise korrigierst, lautet die Ausgabe Hello Ada.

Die gemeldete Stelle ist dort, wo Python das Problem bemerkt hat. Sieht eine Zeile richtig aus, prüfe auch die Zeile davor. Ein zuvor fehlendes Anführungszeichen oder eine fehlende Klammer kann dazu führen, dass Python den folgenden Code nicht versteht. Aktuelle Versionen zeigen oft direkt auf die nicht geschlossene öffnende Klammer.

Den Fehlertyp als Suchhilfe nutzen
  • NameError: Python findet einen Namen nicht, wie bei pirnt, Print oder einer Variablen, die vor ihrer Zuweisung verwendet wird. Prüfe Schreibweise, Groß- und Kleinschreibung und Reihenfolge der Zeilen.
  • TypeError: Die Operation funktioniert mit diesen Datentypen nicht. "5" + 5 versucht, Text und eine Zahl zu verknüpfen.
  • ValueError: Eine Umwandlung erhält unbrauchbaren Inhalt. int("abc") erhält Text, aber der Text beschreibt keine ganze Zahl.
  • ZeroDivisionError: Ein Divisor ist null. Untersuche den Wert nach /, // oder %.

Prüfe bei einem SyntaxError, ob jedes öffnende Anführungszeichen und jede öffnende Klammer geschlossen wird. print('It's late') beendet die Zeichenkette beim Apostroph in „It's“; verwende print("It's late"). Python-2-Code wie print "hi" braucht die Klammern von Python 3: print("hi"). Ersetze typografische Anführungszeichen durch gerade. Entferne bei einer unerwarteten Einrückung die versehentlichen Leerzeichen am Anfang der Zeile.

Behebe ein Problem und führe das Programm erneut aus. Der erste Fehler kann verhindert haben, dass Python einen zweiten erreicht. Erstelle ein Programm jeweils um wenige Zeilen weiter, damit du bei jedem neuen Fehler nur einen kleinen Bereich untersuchen musst.

Wichtige Erkenntnisse

  • Ein Syntaxfehler verhindert den Start eines Skripts; ein Laufzeitfehler stoppt es, nachdem frühere Zeilen ausgeführt wurden.
  • Lies den Fehlertyp in der letzten Zeile des Tracebacks und untersuche dann den gemeldeten Code.
  • Ein Programm kann erfolgreich laufen und trotzdem einen Logikfehler enthalten.
  • Prüfe Berechnungen anhand einfacher erwarteter Ergebnisse.
  • Behebe einen Fehler und führe das Programm erneut aus, bevor du weiteren Code änderst.

1.3 Kommentare, die den Zweck erklären

Code sagt Python, was es tun soll. Ein Kommentar erklärt einem Menschen, warum der Code es tut oder was ein Wert bedeutet. Python ignoriert einen Kommentar bei der Ausführung des Programms.

Den Kommentar klar kennzeichnen

Ein Kommentar beginnt mit # außerhalb einer Zeichenkette und reicht bis zum Ende der Zeile. Er kann allein stehen oder auf eine Anweisung folgen:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = 68
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)  # Show the converted temperature.

Der Kommentar in einer eigenen Zeile erklärt den Zweck des Programms. Der Kommentar am Zeilenende folgt auf Code in derselben Zeile. PEP 8, der Stilratgeber von Python, empfiehlt mindestens zwei Leerzeichen vor einem # am Zeilenende und ein Leerzeichen danach. Durch diese Abstände ist die Grenze leicht zu erkennen.

Ein Rautezeichen innerhalb von Anführungszeichen ist gewöhnlicher Text:

print("#1 is not a comment")  # This part is a comment.

Die Ausgabe lautet #1 is not a comment. Python liest die gesamte Zeichenkette in Anführungszeichen einschließlich ihres Rautezeichens als Daten. Den Text nach dem späteren # ignoriert es, weil dieses Zeichen außerhalb der Anführungszeichen steht.

Bedeutung statt offensichtlicher Schritte erklären

Vergleiche diese Kommentare:

count = count + 1  # Add 1 to count.
attempts = attempts + 1  # One more failed login.

Der erste Kommentar wiederholt eine Operation, die bereits im Code sichtbar ist. Der zweite ergänzt einen Grund für die Änderung. Wer den Code liest, weiß nun, was gezählt wird. Ein klarer Name wie attempts übernimmt ebenfalls einen Teil der Arbeit, die bei einem ungenauen Namen den Kommentaren bliebe.

Nützliche Kommentare erklären eine Einheit, eine Entscheidung oder einen Zweck, die der Code allein nicht deutlich macht. Zum Beispiel verbindet tax_rate = 0.08 # 8% sales tax einen Dezimalsatz mit seiner Bedeutung. Wenn du diesen Satz später änderst, prüfe auch den Kommentar. Ein veralteter Kommentar kann in die falsche Richtung führen, selbst wenn der Code funktioniert.

Die Ausführung einer Zeile vorübergehend verhindern

Um eine Anweisung auszukommentieren, setze # davor:

print("Start")
# print("Checking this step")
print("Finish")

Nur Start und Finish erscheinen. Durch das Auskommentieren bleibt eine Zeile verfügbar, während du das Programm ohne sie testest. Entferne alten deaktivierten Code, wenn er nicht mehr hilft; sonst muss später geraten werden, ob er noch gebraucht wird.

Beginne für eine Notiz über mehrere Zeilen jede Zeile mit #:

# Read the temperature in degrees Fahrenheit.
# Keep the calculation in Celsius for the next step.

Text in dreifachen Anführungszeichen ist etwas anderes. Eine Zeile wie """Convert a temperature.""" ist ein Zeichenkettenausdruck, kein Kommentar. Solche Zeichenketten können an bestimmten Stellen als Dokumentation dienen und heißen Docstrings. Verwende #, wenn du einen gewöhnlichen Kommentar meinst. Eine Zeichenkette, die nichts verwendet, kann in einem Skript unsichtbar bleiben. Dadurch kann sie wie ein Kommentar aussehen, obwohl Python sie als Wert liest.

Wichtige Erkenntnisse

  • Ein # außerhalb einer Zeichenkette beginnt einen Kommentar, der am Ende der Zeile endet.
  • Erkläre einen Zweck, eine Entscheidung oder eine Einheit, die der Code nicht bereits deutlich macht.
  • Das Auskommentieren einer Anweisung verhindert ihre Ausführung.
  • Aktualisiere Kommentare, wenn sich der Code ändert.
2

Verschiedene Arten von Werten erkennen und schreiben

Python behandelt eine Anzahl, einen Messwert und ein Stück Text als verschiedene Arten von Daten. Ihre Datentypen beeinflussen, wie du sie schreibst und was eine Operation mit ihnen tun kann. Lerne, einen Wert an seiner Schreibweise zu erkennen, seinen Datentyp zu prüfen und eine geeignete Form für eine konkrete Aufgabe zu wählen. Schreibe anschließend Zahlen und Zeichenketten sorgfältig, auch mit Dezimalpunkten, Anführungszeichen und Sonderzeichen, damit Python dieselben Daten liest, die du eingeben wolltest.

2.1 Werte haben Datentypen

Ein Wert ist ein Datum, zum Beispiel 42, 3.5 oder "Ada". Jeder Wert hat einen Datentyp, der Python sagt, um welche Art von Daten es sich handelt. Ein Literal ist ein Wert, der direkt im Code steht. Seine Schreibweise ist wichtig: 7, 7.0 und "7" haben verschiedene Datentypen.

Vier grundlegende Datentypen
DatentypArt der DatenBeispiele
intGanze Zahl42, 0, -7
floatGleitkommazahl3.5, 2.0, -0.25
strZeichenkette oder Text"Ada", 'hello', "42"
boolBoolescher WahrheitswertTrue, False

Ein Dezimalpunkt macht 2.0 zu einem float, obwohl der Zahlenwert gleich der ganzen Zahl 2 ist. Anführungszeichen machen "42" zu Text, obwohl die Zeichen wie eine Zahl aussehen. Der Datentyp ergibt sich aus dem geschriebenen Wert, nicht daraus, wofür jemand ihn verwenden könnte.

Boolesche Literale haben einen großen Anfangsbuchstaben und keine Anführungszeichen. True ist ein boolescher Wert; "True" ist eine Zeichenkette. Das kleingeschriebene true ist ein Name. Wird er ohne Definition verwendet, ergibt das einen NameError. Ein Vergleich kann einen booleschen Wert erzeugen: 3 < 5 wird zu True ausgewertet.

Python nach dem Datentyp fragen

Die eingebaute Funktion type() gibt den Datentyp ihres Arguments an. In der Shell zeigen diese Aufrufe:

>>> type(7)
<class 'int'>
>>> type(7.0)
<class 'float'>
>>> type("7")
<class 'str'>
>>> type(True)
<class 'bool'>

Verwende in einem Skript print(), um diese Ergebnisse zu sehen:

print(type(42), type("42"))

Das gibt <class 'int'> <class 'str'> aus. Das Wort class ist Teil der Ausgabe von Python; die Namen int und str bezeichnen die Datentypen.

Datentypen ändern die Bedeutung von Operatoren

Bei Zahlen addiert +. Bei zwei Zeichenketten verknüpft es Text:

print(5 + 3)
print("5" + "3")

Die erste Zeile gibt 8 aus. Die zweite gibt 53 aus. Der zweite Ausdruck enthält zwei Textwerte, also verknüpft Python ihre Zeichen. Es untersucht die Ziffernzeichen nicht, um dann zu entscheiden, sie zu addieren.

"5" + 5 löst einen TypeError aus: Ein Operand ist Text und der andere eine ganze Zahl. Prüfe die Datentypen, wenn sich eine Operation anders verhält als erwartet. Insbesondere beweisen Ziffern auf dem Bildschirm nicht, dass der gespeicherte Wert eine Zahl ist.

Einen zur Bedeutung passenden Datentyp wählen

Verwende eine ganze Zahl für eine Anzahl und eine Gleitkommazahl für einen Messwert, der einen Bruchteil enthalten kann. Speichere einen Identifikator wie eine Postleitzahl als Text. Die Zeichenkette "02134" bewahrt die führende null; sie gehört zur Kennung und nicht zu einer Berechnung. Auch Telefonnummern können Satzzeichen enthalten, die erhalten bleiben sollen.

Die Shell kann 'Ada' zeigen, während print("Ada") den Wert Ada zeigt. Beide beziehen sich auf denselben Text. Die Anführungszeichen der Shell kennzeichnen eine Zeichenkette; print() stellt die Zeichen für Leserinnen und Leser dar. Keine der beiden Anzeigen ändert den gespeicherten Datentyp.

Wichtige Erkenntnisse

  • Die Schreibweise eines Literals bestimmt seinen Datentyp: 7, 7.0 und "7" unterscheiden sich.
  • type() gibt den Datentyp eines Werts an.
  • Bei Operatoren spielen Datentypen eine Rolle: Zahlen zu addieren und Text zu verknüpfen sind verschiedene Operationen.
  • Schreibe boolesche Literale als True und False, ohne Anführungszeichen.
  • Speichere Identifikatoren wie Postleitzahlen als Zeichenketten, damit ihre Zeichen erhalten bleiben.

2.2 Zahlen, Dezimalpunkte und Genauigkeit von Gleitkommazahlen

Python hat getrennte Datentypen für ganze Zahlen und Gleitkommazahlen. Wenn du sie klar schreibst, verhinderst du sowohl Syntaxfehler als auch weniger offensichtliche Änderungen der Daten.

Anzahlen als ganze Zahlen schreiben

Eine ganze Zahl hat keinen Bruchteil. Schreibe einen int ohne Dezimalpunkt, wie in 42, 0 oder -7. Ganze Zahlen in Python können so groß werden, wie es der verfügbare Speicher erlaubt; es gibt keine feste Begrenzung ihrer Stellenzahl. Addition, Subtraktion und Multiplikation ganzer Zahlen sind exakt. Zum Beispiel ergibt 2 ** 100 die exakte ganze Zahl 1267650600228229401496703205376.

Verwende keine Kommas zur Tausendergruppierung. Schreibe 1000000 oder verwende zur besseren Lesbarkeit Unterstriche: 1_000_000. Die Unterstriche ändern den Wert nicht.

Ein dezimales Literal für eine ganze Zahl ungleich null darf nicht mit einer null beginnen. 02134 zu schreiben ist ein Syntaxfehler. Sind diese Ziffern ein Identifikator, bei dem die erste null wichtig ist, schreibe "02134" als Text.

Größen mit Bruchteilen als Gleitkommazahlen schreiben

Ein float verwendet einen Dezimalpunkt oder die Exponentenschreibweise. 3.5, 2.0 und -0.25 sind Gleitkommazahlen. Python akzeptiert auch .5 und 5., was 0.5 und 5.0 bedeutet; die zusätzliche null macht die Schreibweise oft leichter lesbar. Verwende Gleitkommazahlen für Messwerte wie Temperatur oder Entfernung und für einfache Berechnungen mit Preisen, die Bruchteile enthalten.

Python-Code verwendet einen Dezimalpunkt. Ein Komma trennt Werte; es kennzeichnet niemals den Nachkommateil. Zum Beispiel:

x = 3.5
print(x)

gibt 3.5 aus, während x = 3,5 ein Wertepaar erzeugt, das als (3, 5) angezeigt wird. Ebenso erzeugt x = 1,000 den Wert (1, 0), nicht eintausend. Diese Anweisungen können ausgeführt werden. Das Ausbleiben einer Fehlermeldung bedeutet also nicht, dass die Zahl richtig geschrieben wurde.

Wissenschaftliche Schreibweise verwenden

Der Buchstabe e bedeutet in einem Zahlenliteral „mal zehn hoch“:

LiteralWert
1.5e31500.0
2.5e-30.0025
1e31000.0

Ein Literal mit Exponent ist ein float, selbst wenn sein Wert eine ganze Zahl ist. Das Minuszeichen nach e ergibt einen negativen Exponenten, sodass 2.5e-3 gleich 2,5 dividiert durch 1.000 bedeutet.

Mit begrenzter Genauigkeit rechnen

Gleitkommazahlen speichern Zahlen binär mit begrenzter Genauigkeit, üblicherweise etwa 15–17 signifikanten Dezimalstellen. Viele Dezimalbrüche, darunter 0.1, haben in dieser Speicherung keine exakte Darstellung. Daher:

print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))

werden 0.30000000000000004 und dann 0.3 ausgegeben. Der winzige Unterschied entsteht durch die gespeicherten Näherungswerte. round(..., 2) rundet das Ergebnis für die Anzeige auf zwei Nachkommastellen; es ändert nicht, wie Gleitkommazahlen Werte speichern. Behalte die ursprüngliche Berechnung bis zum Ende bei und runde dann das angezeigte Ergebnis.

Ein Vorzeichen kann auch ein Operator sein. Das unäre Minus kehrt das Vorzeichen eines Werts um: -7 ist minus sieben. In 5 - -3 subtrahiert das erste Minus und das zweite ergibt minus drei, sodass das Ergebnis 8 ist. Unterscheide dieses Vorzeichen vom negativen Exponenten in einem Literal wie 2.5e-3.

Wichtige Erkenntnisse

  • Schreibe im Code Dezimalpunkte und verwende zur Gruppierung großer Zahlen Unterstriche statt Kommas.
  • Ganze Zahlen in Python haben keine feste Begrenzung der Stellenzahl; der verfügbare Speicher begrenzt sie dennoch.
  • Ein Literal mit einem Dezimalpunkt oder e ist ein float.
  • Viele Dezimalbrüche werden als Gleitkommazahlen nur näherungsweise dargestellt; runde das angezeigte Endergebnis.
  • Das unäre Minus kehrt das Vorzeichen eines Werts um.

2.3 Anführungszeichen und Zeichen in Zeichenketten

Eine Zeichenkette ist eine Folge von Zeichen: Buchstaben, Ziffern, Leerzeichen, Satzzeichen und anderen Symbolen. Anführungszeichen sagen Python, wo diese Folge beginnt und endet. Die Zeichen darin sind Daten, auch wenn sie wie Python-Code aussehen.

Passende Anführungszeichen wählen

Einfache und doppelte Anführungszeichen erzeugen denselben Datentyp str. Sowohl 'Ada' als auch "Ada" enthalten dieselben drei Zeichen. Beginne und beende eine Zeichenkette mit derselben Art von Anführungszeichen.

Wähle die äußeren Anführungszeichen so, dass sich ein inneres Anführungszeichen leicht schreiben lässt:

print("It's late")
print('She said "hi"')

Die Ausgabe lautet:

It's late
She said "hi"

In print('It's late') schließt der Apostroph nach It die Zeichenkette zu früh. Python kann den Rest der Anweisung dann nicht lesen. Doppelte äußere Anführungszeichen halten den Apostroph innerhalb des Textes.

Eine Escape-Sequenz verwenden

Ein umgekehrter Schrägstrich beginnt eine Escape-Sequenz. Diese gebräuchlichen Sequenzen stehen jeweils für ein Zeichen:

Im Code geschriebenZeichen in der Zeichenkette
\nZeilenumbruch
\tTabulator
\\Ein umgekehrter Schrägstrich
\'Einfaches Anführungszeichen
\"Doppeltes Anführungszeichen

Zum Beispiel gibt print("Line 1\nLine 2") zwei Zeilen aus. Der umgekehrte Schrägstrich und das n im Code stehen zusammen für einen Zeilenumbruch, nicht für einen sichtbaren Buchstaben n. Ebenso gibt print('It\'s late') den Text It's late aus: Das mit einem umgekehrten Schrägstrich versehene Anführungszeichen wird zu einem Zeichen, ohne die Zeichenkette zu beenden.

Um einen wörtlichen umgekehrten Schrägstrich gefolgt von einem Buchstaben auszugeben, schreibe den umgekehrten Schrägstrich doppelt. print("A\\B") zeigt A\B. Der erste umgekehrte Schrägstrich signalisiert, dass der nächste ein Zeichen sein soll.

Zeilenumbrüche beibehalten oder keine Zeichen verwenden

Mit dreifachen Anführungszeichen kann eine Zeichenkette mehrere physische Zeilen umfassen. Die Zeilenumbrüche werden Teil ihres Werts:

print("""Line one
Line two""")

Das gibt Line one und Line two in getrennten Zeilen aus. Dreifache einfache Anführungszeichen funktionieren ebenfalls. Dreifache Anführungszeichen erzeugen weiterhin eine Zeichenkette; sie erzeugen keinen #-Kommentar.

Die leere Zeichenkette "" hat keine Zeichen. Sie unterscheidet sich von " ", das ein Leerzeichen enthält. Dieses Leerzeichen ist in der Ausgabe möglicherweise schwer zu sehen, bleibt aber Teil der Daten.

Text von einem Ausdruck oder Namen unterscheiden

Vergleiche diese Anweisungen:

name = "Ada"
print("3 + 4")
print(3 + 4)
print("name")
print(name)

Die Ausgabe lautet 3 + 4, dann 7, dann name, dann Ada. Die Anführungszeichen machen das erste und das dritte Argument zu wörtlichem Text. Ohne Anführungszeichen wertet Python eine Berechnung aus oder schlägt eine Variable nach.

Vergisst du die Anführungszeichen um eine Nachricht wie Hello, sucht Python nach einem Namen. Wenn Hello nicht definiert wurde, löst print(Hello) einen NameError aus. Schreibe print("Hello"), wenn du dieses Wort ausgeben möchtest.

Zeichenketten können Zeichen aus vielen Sprachen und Symbole wie "café", "naïve" und "°F" enthalten. Daneben können Ziffern stehen: "Room 101" ist durchgehend Text. Ein Ziffernzeichen in Anführungszeichen wird nicht zu einer ganzen Zahl.

Wichtige Erkenntnisse

  • Einfache und doppelte Anführungszeichen erzeugen beide Zeichenketten; die öffnende und schließende Art müssen übereinstimmen.
  • Wähle äußere Anführungszeichen oder Escape-Sequenzen so, dass ein inneres Anführungszeichen im Text bleibt.
  • Zu den gebräuchlichen Escape-Sequenzen gehören \n, \t und \\.
  • Dreifache Anführungszeichen erhalten Zeilenumbrüche in einer Zeichenkette.
  • Eine leere Zeichenkette enthält keine Zeichen; ein Leerzeichen ist ein Zeichen.
  • Text in Anführungszeichen sind Daten; Namen und Berechnungen ohne Anführungszeichen werden ausgewertet.
3

Werte benennen und ihre Änderungen verfolgen

Variablen ermöglichen es einem Programm, einen Wert erneut zu verwenden und ihm eine Bedeutung zu geben, die beim Lesen erkennbar ist. Eine Zuweisung verbindet einen Namen mit dem Ergebnis eines Ausdrucks; eine spätere Zuweisung kann diese Verbindung ändern. Lerne, diese Schritte der Reihe nach zu lesen, Namen zu wählen, die Python akzeptiert, und ein gespeichertes Ergebnis von einer Formel zu unterscheiden, die erneut ausgeführt werden müsste. Ablauftabellen machen diese Änderungen sichtbar, einschließlich der Schritte, die für einen sicheren Tausch zweier Werte nötig sind.

3.1 Eine Zuweisung gibt einem Wert einen Namen

Eine Variable ist ein Name, der auf einen Wert im Speicher verweist. Eine Zuweisung verbindet einen Namen links von = mit dem Wert eines Ausdrucks rechts davon.

Zuerst die rechte Seite lesen

In age = 30 wertet Python 30 aus und lässt dann age auf diese ganze Zahl verweisen. Die linke Seite muss eine zulässige Stelle für die Zuweisung eines Werts sein. 30 = age ist ein Syntaxfehler: Du kannst dem Literal 30 keinen neuen Wert zuweisen.

Das Zeichen = bedeutet „weise zu“. Es fragt nicht, ob zwei Werte gleich sind. Für die Gleichheitsprüfung wird == verwendet. Wenn du die Zuweisung als Arbeitsrichtung liest, werden Anweisungen wie x = x + 1 verständlich: Verwende rechts den alten Wert von x, berechne den neuen Wert und weise ihn dann links x zu.

Betrachte ein Rechteck:

width = 4
height = 2.5
area = width * height
print(area)

Nach der ersten Zeile verweist width auf 4. Nach der zweiten verweist height auf 2.5. Für die dritte Zeile schlägt Python beide aktuellen Werte nach und wertet 4 * 2.5 aus, was 10.0 ergibt. Es weist dieses Ergebnis area zu. Die letzte Zeile gibt 10.0 aus.

Die Zuweisung selbst gibt den Wert nicht aus. Verwende den Namen in einem späteren print()-Aufruf, wenn du ihn anzeigen möchtest.

Vor der Verwendung eines Namens einen Wert zuweisen

Python folgt der Reihenfolge der Anweisungen. Dieser Code schlägt in der ersten Zeile fehl:

print(total)
total = 10

Zu diesem Zeitpunkt hat total keinen Wert. Die spätere Zuweisung kann einer früheren Anweisung keinen Wert liefern. Verschiebe total = 10 vor print(total).

Eine Shell kann Namen aus früheren Versuchen behalten. Ein gespeichertes Programm sollte die benötigten Zuweisungen in seiner eigenen Ausführungsreihenfolge bereitstellen, damit sein Ergebnis nicht davon abhängt, was du zuvor eingegeben hast.

Einem bestehenden Namen erneut einen Wert zuweisen

Eine erneute Zuweisung lässt einen Namen auf einen neuen Wert verweisen:

score = 10
score = 15

Nun ist score gleich 15; der frühere Wert 10 ist über diesen Namen nicht mehr erreichbar. Für eine Aktualisierung auf Grundlage des alten Werts:

x = 3
x = x + 1

Die zweite Zeile wertet 3 + 1 aus und weist dann x den Wert 4 zu. Es gibt weder eine zu lösende Gleichung noch einen Widerspruch.

Ein Datentyp gehört zum Wert, nicht dauerhaft zum Variablennamen. Python erlaubt temp = 3 gefolgt von temp = "three"; danach gibt type(temp) den Datentyp str an. Ein Programm lässt sich meist leichter nachvollziehen, wenn Bedeutung und erwarteter Datentyp eines Namens gleich bleiben.

Ein kopierter Wert ist keine zukünftige Verknüpfung
a = 5
b = a
a = 10
print(a, b)

Das gibt 10 5 aus. Bei b = a verweisen beide Namen auf die aktuelle ganze Zahl 5. Eine erneute Zuweisung an a ändert, auf welchen Wert a verweist; b verweist weiterhin auf 5. Ebenso speichert die Zuweisung von width * height das Ergebnis, keine Formel, die sich bei einer Änderung von width selbst aktualisiert.

Eine Anweisung kann mehreren Namen Werte zuweisen. a = b = 0 gibt beiden Namen den Wert 0. In x, y = 1, 2 werden die Werte den Namen anhand ihrer Position zugeordnet, sodass x gleich 1 und y gleich 2 wird.

Wichtige Erkenntnisse

  • Eine Zuweisung wertet den Ausdruck rechts aus, bevor sie seinen Wert dem Namen links zuweist.
  • Eine Variable muss einen Wert haben, bevor ein Ausdruck sie verwendet.
  • Eine erneute Zuweisung ändert den Wert, der über einen Namen erreichbar ist.
  • Die Zuweisung einer Variablen an eine andere verknüpft ihre künftigen Zuweisungen nicht.
  • Ein Wert hat einen Datentyp; derselbe Name kann später auf einen Wert eines anderen Datentyps verweisen.

3.2 Namen, die Python akzeptiert und Menschen verstehen

Ein Name muss Pythons Grammatik entsprechen und Menschen helfen, das Programm zu verstehen. Das sind zwei getrennte Anforderungen: Python kann einen Namen akzeptieren, der den Code trotzdem schwer lesbar macht.

Die Namensregeln beachten

Ein Variablenname darf Buchstaben, Ziffern und Unterstriche enthalten. Er darf nicht mit einer Ziffer beginnen, kein Leerzeichen enthalten und keine Satzzeichen wie einen Bindestrich verwenden.

NameWas passiert
total, item_count, price2, _tempGültige Namen
2nd_placeUngültig: beginnt mit einer Ziffer
first nameUngültig: enthält ein Leerzeichen
first-nameWird als Subtraktion gelesen, nicht als ein Name

Python akzeptiert auch Buchstaben aus anderen Alphabeten. Englische Buchstaben sind eine häufige Wahl für Bezeichner. Welche Buchstaben du auch wählst, behalte die Schreibweise bei: age, Age und AGE sind drei verschiedene Namen. Die Zuweisung age = 30 definiert Age nicht.

Schlüsselwörter und eingebaute Namen unterscheiden

Ein Schlüsselwort ist für Pythons Grammatik reserviert. Du kannst es nicht als Variablennamen verwenden. Die fest reservierten Schlüsselwörter sind:

False None True and as assert async await break class
continue def del elif else except finally for from
global if import in is lambda nonlocal not or pass
raise return try while with yield

Du musst die Liste nicht auswendig lernen, bevor du ein Programm schreibst. Fürs Erste reicht es zu erkennen, dass ein Name wie class nicht zur Verfügung steht: class = 3 ist ein Syntaxfehler. Editoren zeigen Schlüsselwörter oft in einer besonderen Farbe an.

Namen eingebauter Funktionen, darunter print, input, int, str, type, sum und max, sind keine Schlüsselwörter. Python erlaubt dir, ihnen Werte zuzuweisen, aber diese Zuweisung verdeckt die ursprüngliche Funktion:

print = 5
print("hi")

Die zweite Zeile versucht, die ganze Zahl 5 aufzurufen, und löst einen TypeError aus. Wähle einen Namen, der deine Daten beschreibt, etwa total, damit die eingebaute Funktion verfügbar bleibt. Ein Neustart der Shell macht versehentliche Ersetzungen aus Versuchen rückgängig.

Namen einheitlich schreiben

PEP 8 empfiehlt snake_case für Variablennamen: kleingeschriebene Wörter, die durch Unterstriche verbunden sind, wie in hourly_rate und first_name. Der Unterstrich hält einen Namen aus mehreren Wörtern ohne Leerzeichen zusammen.

Eine Konstante ist ein Wert, der unverändert bleiben soll. Üblicherweise wird ihr Name in Großbuchstaben geschrieben:

SALES_TAX_RATE = 0.08

Python sperrt diesen Namen nicht. Eine spätere Zuweisung kann ihn ändern; die Großbuchstaben teilen den Lesenden eine Absicht mit.

Bedeutung und Einheiten angeben

hours_worked = 38 sagt dir mehr als h = 38. Ein Name wie distance_miles oder temp_f nennt auch die Einheit. So sinkt die Gefahr, Meilen wie Kilometer oder Fahrenheit wie Celsius zu behandeln. Kurze Namen wie x und y eignen sich für Koordinaten oder eine kurze Formel, bei der ihre Bedeutung bereits klar ist.

Vermeide fast identische Namen wie total und totl. Ein Tippfehler kann einen NameError erzeugen oder versehentlich eine andere vorhandene Variable verwenden. PEP 8 rät auch von den einzelnen Buchstaben l, O und I ab, die wie Ziffern aussehen können. Einige zusätzliche Buchstaben können eine Berechnung viel leichter nachvollziehbar machen.

Wichtige Erkenntnisse

  • Beginne einen Namen mit einem Buchstaben oder Unterstrich und verwende danach Buchstaben, Ziffern oder Unterstriche.
  • Schlüsselwörter sind reserviert; eingebaute Namen können erneut verwendet werden, sollten aber verfügbar bleiben.
  • Verwende aussagekräftige Namen in snake_case und gib sinnvolle Einheiten an.
  • Konstantennamen in Großbuchstaben zeigen eine Absicht; sie verhindern keine erneute Zuweisung.

3.3 Aktualisierungen, Ablauftabellen und Tausch

Eine Aktualisierung berechnet aus dem aktuellen Wert einer Variablen ihren nächsten Wert. Wenn du jede Aktualisierung der Reihe nach verfolgst, kannst du die Ausgabe vorhersagen und Logikfehler finden, bevor du das Programm ausführst.

Vor der Aktualisierung einen Anfangswert zuweisen

count = count + 1 addiert eins zum alten Zählerwert. Diese Änderung ist ein Inkrement. Eine Variable, die eine laufende Summe sammelt, ist ein Akkumulator. Gib ihr einen Anfangswert wie total = 0, bevor du Werte addierst.

Eine erweiterte Zuweisung verbindet eine Operation mit einer Zuweisung. Bei Zahlen hat x += 3 dieselbe Wirkung wie x = x + 3. Zu den verfügbaren Formen gehören +=, -=, *=, /=, //=, %= und **=.

score = 10
score -= 3
score **= 2
print(score)

Die Subtraktion ändert score zu 7. Die Potenzierung ändert den Wert dann zu 49, das ausgegeben wird. Ohne die anfängliche Zuweisung würde die Aktualisierung versuchen, einen nicht definierten Namen zu verwenden, und einen NameError auslösen.

Der gewählte Operator beeinflusst auch den Datentyp. Ausgehend von n = 7 erzeugt n /= 2 den float 3.5. Erneut ausgehend von n = 7 erzeugt n //= 2 die ganze Zahl 3. Python hat keinen Inkrementoperator ++: x++ ist ungültig. ++x wendet das unäre Plus zweimal an und aktualisiert x nicht; verwende x += 1.

Eine Anweisung nach der anderen nachvollziehen

Eine Ablauftabelle hält die Variablenwerte nach jeder Anweisung fest. Schreibe eine Spalte pro Variable und eine Zeile pro Schritt:

price = 20
quantity = 3
total = price * quantity
price = 25
total += 5
print(total, price)
Zuletzt ausgeführte Anweisungpricequantitytotal
price = 2020Nicht zugewiesenNicht zugewiesen
quantity = 3203Nicht zugewiesen
total = price * quantity20360
price = 2525360
total += 525365

Die Ausgabe lautet 65 25. Die Änderung von price hat die frühere Multiplikation nicht wiederholt. Die Variable total enthielt den berechneten Wert 60; sie war keine mit price verknüpfte Tabellenformel. Erst ihre spätere Aktualisierung änderte den Wert zu 65.

Werte beim Nachvollziehen von Hand die rechte Seite anhand der Zeile direkt darüber aus und aktualisiere dann den Namen, dem ein Wert zugewiesen wird. Lass alle anderen Spalten unverändert. Vergleiche die Vorhersage mit der tatsächlichen Ausgabe des Programms.

Beim Tausch beide Werte erhalten

Angenommen, a = 1 und b = 2. Der Versuch a = b gefolgt von b = a ergibt 2 2. Nach der ersten Zuweisung ist der ursprüngliche Wert von a über diesen Namen nicht mehr erreichbar, sodass die zweite Zeile den neuen Wert zurückkopiert.

Eine temporäre Variable hält den ursprünglichen Wert verfügbar:

a = 1
b = 2
temp = a
a = b
b = temp
print(a, b)

Das gibt 2 1 aus. Du kannst auch a, b = b, a schreiben. Python wertet beide Werte rechts aus, bevor es einem der Namen links einen Wert zuweist. So stehen beide ursprünglichen Werte für den Tausch zur Verfügung. Verfolge die Variante mit der temporären Variablen, wenn du genau sehen möchtest, wo jeder ursprüngliche Wert erhalten bleibt.

Wichtige Erkenntnisse

  • Eine erweiterte Zuweisung benötigt einen bereits vorhandenen Wert.
  • Verwende += 1 für ein Inkrement; ++ aktualisiert keine Python-Variable.
  • Eine Ablauftabelle hält Werte nach jeder Anweisung fest.
  • Die Änderung einer Eingabevariablen berechnet ein zuvor gespeichertes Ergebnis nicht neu.
  • Der Operator einer Aktualisierung kann den Datentyp des Ergebnisses ändern.
  • Ein Tausch benötigt beide ursprünglichen Werte: Speichere einen vorübergehend oder verwende eine gleichzeitige Zuweisung.
4

Berechnungen mit den richtigen Operatoren erstellen

Ein Ausdruck kombiniert Werte zu einem Ergebnis. Python verwendet vertraute arithmetische Grundideen, aber du musst Multiplikation, Potenzen und Division mit den richtigen Zeichen schreiben. Lerne, wie die Reihenfolge der Operatoren eine Berechnung steuert, wie abrundende Division und Rest Mengen aufteilen und wie Datentypen die Bedeutung von Addition und Multiplikation ändern. Wenn du Ausdrücke in kleinen Schritten durcharbeitest, erkennst du, ob Ergebnis, Datentyp und Bedeutung deiner Absicht entsprechen.

4.1 Arithmetische Zeichen und Datentypen von Ergebnissen

Ein Ausdruck wird zu einem Wert ausgewertet. Er kann ein einzelnes Literal, eine Variable oder eine Kombination wie 2 + 3 sein. Das + ist ein Operator; die Werte, auf die er angewendet wird, sind seine Operanden.

Den Operator wählen

Pythons arithmetische Operatoren funktionieren wie folgt:

OperationAusdruckErgebnis
Addition7 + 29
Subtraktion7 - 25
Multiplikation7 * 214
Division7 / 23.5
Abrundende Division7 // 23
Rest7 % 21
Potenzierung7 ** 249

Schreibe die Multiplikation ausdrücklich mit *. Eine mathematische Schreibweise wie 2x funktioniert nicht als Python-Multiplikation. Schreibe 2 * x oder 2 * (x + 1). Bei x = 1 versucht 2(x + 1), die ganze Zahl 2 wie eine Funktion aufzurufen, und löst einen TypeError aus.

Der Potenzoperator ist **, nicht ^. Zum Beispiel ist 7 ** 2 gleich 49, während 7 ^ 2 gleich 5 ist, weil das Zirkumflexzeichen eine andere Operation ausführt. Ein Programm kann also laufen und dabei ein unbeabsichtigtes Ergebnis berechnen.

Datentyp und Zahl vorhersagen

Eine Division mit / ergibt bei ganzzahligen Operanden einen float, selbst wenn die Division aufgeht: 6 / 2 ist 3.0. Verwende // für eine ganzzahlige Anzahl voller Gruppen: 6 // 2 ist 3.

Bei zwei ganzzahligen Operanden ergeben Addition, Subtraktion, Multiplikation, abrundende Division und Rest ganzzahlige Ergebnisse. Das gilt auch für nicht negative ganzzahlige Potenzen: 2 ** 10 ergibt die exakte ganze Zahl 1024. Ein negativer Exponent ändert das: 2 ** -1 ergibt den float 0.5.

Bei gewöhnlichen arithmetischen Berechnungen mit einer ganzen Zahl und einer Gleitkommazahl wird mit Gleitkommawerten gerechnet. 3 + 4.0 ergibt 7.0; 7.0 // 2 ergibt 3.0. Abrundende Division beschreibt, wie der Quotient gerundet wird, und verspricht nicht, dass sein Datentyp immer int ist.

Mit einem gebrochenen Exponenten lässt sich eine Wurzel aus einer positiven Zahl berechnen. 4 ** 0.5 ergibt 2.0 und 2 ** 0.5 ergibt ungefähr 1.4142135623730951.

Eine Berechnung aus benannten Werten aufbauen

Ein Auto fährt 287 Meilen mit 10,25 Gallonen:

miles = 287
gallons = 10.25
mpg = miles / gallons
print("Miles per gallon:", mpg)

Die Division berechnet 28.0, die Ausgabe lautet also Miles per gallon: 28.0. Die Namen bezeichnen die Größen und die ausgegebene Beschriftung nennt die Einheit des Ergebnisses. Die Multiplikation 28.0 * 10.25 ergibt wieder 287 Meilen und dient als Kontrolle der Division.

Ein Divisor null führt bei /, // und % zu einem Fehler. Zum Beispiel löst 10 / 0 einen ZeroDivisionError aus. Untersuche bei diesem Fehler eine Variable, die als Divisor verwendet wird.

Leerzeichen um Operatoren ändern ihre Bedeutung nicht: 2+3 und 2 + 3 ergeben beide 5. Leerzeichen um = und die meisten Operatoren machen die Teile leichter lesbar. Sie können keinen Operator ersetzen; 2 x bedeutet weiterhin keine Multiplikation.

Wichtige Erkenntnisse

  • Verwende * für die Multiplikation und ** für Potenzen.
  • / ergibt bei der Division ganzer Zahlen einen float, auch bei einem exakten Quotienten.
  • // ergibt mit zwei ganzen Zahlen eine ganze Zahl; ein float als Operand ergibt einen float.
  • Ein negativer ganzzahliger Exponent erzeugt einen float als Ergebnis.
  • /, // und % lösen bei einem Divisor null einen ZeroDivisionError aus.

4.2 Operationen ordnen und Formeln gruppieren

Python berechnet einen Ausdruck nicht einfach vom linken bis zum rechten Rand. Der Vorrang legt fest, welche Operationen zuerst stattfinden. Mit Klammern kannst du eine andere Gruppierung wählen oder die beabsichtigte Gruppierung verdeutlichen.

Die Stufen der Reihe nach anwenden

Für die hier eingeführten Operatoren gilt diese Reihenfolge:

  1. Ausdrücke in Klammern.
  2. Potenzen, **.
  3. Unäre Vorzeichen, etwa das Minus in -x.
  4. Multiplikations- und Divisionsoperationen: *, /, //, %.
  5. Addition und Subtraktion: +, -.

Werte bei 3 + 4 * 2 ** 2 den Ausdruck 2 ** 2 aus, um 4 zu erhalten. Der Ausdruck wird zu 3 + 4 * 4. Die Multiplikation ergibt 16 und die Addition 19. Bei (3 + 4) * 2 ** 2 ist die Summe in Klammern 7; die Potenz ist 4; das Produkt ist 28.

Operatoren auf der Multiplikations- und Divisionsstufe haben denselben Vorrang. Rechne von links nach rechts: 8 / 2 * 4 bedeutet (8 / 2) * 4 und ergibt 16.0. Die Multiplikation wird nicht vor der Division ausgeführt. Ebenso ergibt 100 / 10 / 5 den Wert 2.0 und 10 - 4 - 3 den Wert 3.

Mit Potenzen und Vorzeichen sorgfältig umgehen

Aufeinanderfolgende Potenzen werden von rechts nach links gruppiert. 2 ** 3 ** 2 bedeutet 2 ** (3 ** 2). Zuerst ergibt 3 ** 2 den Wert 9; dann ergibt 2 ** 9 den Wert 512. Eine Gruppierung von links würde 64 ergeben, also ein anderes Ergebnis.

Ein vorangestelltes Minuszeichen wird nach einer folgenden Potenzierung angewendet: -2 ** 2 bedeutet -(2 ** 2) und ergibt -4. In (-2) ** 2 machen die Klammern minus zwei zur Basis, sodass das Ergebnis 4 ist. Ein Minus nach ** kann zum Exponenten gehören: 2 ** -1 ergibt 0.5.

Die vollständige Gruppierung einer Formel übertragen

Für ein arithmetisches Mittel müssen beide Werte addiert werden, bevor durch zwei dividiert wird:

average = (88 + 92) / 2

Die Summe ist 180, die anschließende Division ergibt 90.0. Ohne Klammern dividiert 88 + 92 / 2 nur 92 und ergibt 134.0.

Ein Bruchstrich gruppiert ebenfalls alles darüber und darunter. Ein Zähler mit a + b und ein Nenner mit c + d werden zu (a + b) / (c + d). Lässt du eines der Klammerpaare weg, kann sich ändern, welche Terme dividiert werden.

Dasselbe Problem tritt bei einer Temperaturumrechnung auf:

celsius = (98.6 - 32) * 5 / 9

Die Subtraktion ergibt 66.6, die Multiplikation 333.0 und die Division 37.0. Ohne die Gruppierung ergibt 98.6 - 32 * 5 / 9 den Wert 80.82222222222222.

Die richtigen Gruppierungszeichen verwenden

Runde Klammern gruppieren einen Ausdruck. Eckige und geschweifte Klammern haben in Python andere Bedeutungen. Zum Beispiel erzeugt [2 + 3] * 4 den Wert [5, 5, 5, 5], nicht 20.

Klammern um eine Operation, die ohnehin zuerst ausgeführt würde, lassen das Ergebnis unverändert: Sowohl (2 * 3) + 1 als auch 2 * 3 + 1 ergeben 7. Klammern, die die Gruppierung ändern, können den Wert ändern: 2 * (3 + 1) ergibt 8. Ergänze Klammern, wo sie die Bedeutung der Berechnung leichter erkennbar machen.

Wichtige Erkenntnisse

  • Werte zuerst Klammern, dann Potenzen, unäre Vorzeichen, Multiplikations- und Divisionsoperationen und schließlich Addition und Subtraktion aus.
  • Rechne innerhalb einer Stufe von links nach rechts; Potenzen werden jedoch von rechts nach links gruppiert.
  • Ein vorangestelltes Minus unterscheidet sich von einer negativen Basis: -2 ** 2 und (-2) ** 2 sind verschieden.
  • Gruppiere beim Übertragen eines Bruchs den gesamten Zähler und Nenner.
  • Verwende runde Klammern, um Berechnungen zu gruppieren.

4.3 Ganze Gruppen und der Rest

Abrundende Division und Rest beantworten zwei zusammengehörige Fragen: Wie viele ganze Gruppen passen hinein und was bleibt nach diesen Gruppen übrig? Bei nicht negativen ganzzahligen Mengen ist das Paar für Zeit, Geld, Verpackungen und Ziffern nützlich.

Quotient und Rest gemeinsam bestimmen

17 // 5 ergibt 3, die Anzahl voller Fünfergruppen. 17 % 5 ergibt 2, die verbleibende Menge. Die beiden Ergebnisse ergeben zusammen wieder die Ausgangsmenge:

print((17 // 5) * 5 + 17 % 5)

Der Ausdruck ergibt 17: drei Fünfergruppen plus zwei. Allgemeiner ist für ganze Zahlen und einen Divisor ungleich null der Ausdruck (a // b) * b + a % b gleich a. Nutze diese Beziehung, um beide Antworten zu prüfen.

Konkrete Mengen aufteilen

Für 135 Minuten:

hours = 135 // 60
minutes = 135 % 60

Es sind 2 volle Stunden und 15 Minuten übrig. Der Divisor ist 60, weil eine Stunde 60 Minuten enthält. Die Division mit / ergibt 2.25, was Stunden mit einem Bruchteil ausdrückt; die verbleibenden Minuten werden dadurch nicht gesondert angegeben.

Dieselbe Struktur funktioniert mit einer anderen Gruppengröße:

MengeVolle GruppenRest
347 Cent, 100 Cent pro Euro347 // 100 ergibt 3 Euro347 % 100 ergibt 47 Cent
75 Eier, 12 pro Karton75 // 12 ergibt 6 volle Kartons75 % 12 ergibt 3 Eier

Die Anzahl der Kartons ist die Anzahl der vollen Kartons. Falls du auch für die übrigen Eier einen Behälter brauchst, ist das eine andere Frage als die nach der Anzahl voller Gruppen.

Stellenwert und Parität nutzen

Bei einer positiven ganzen Zahl trennt die Division durch zehn ihre letzte Ziffer ab. 1234 % 10 ergibt 4 und 1234 // 10 ergibt 123. Die erneute Kombination 123 * 10 + 4 ergibt wieder 1234.

Für jede ganze Zahl n ist n % 2 gleich 0, wenn sie gerade ist, und gleich 1, wenn sie ungerade ist. Das funktioniert auch für negative Zahlen: -7 % 2 ist 1. Bei ganzen Zahlen und einem positiven Divisor b liegt der Rest im Bereich von 0 bis einschließlich b - 1.

Division mit negativen Zahlen verstehen

Die abrundende Division rundet in Richtung minus unendlich ab, nicht in Richtung null. Da minus sieben dividiert durch zwei −3,5 ist, ergibt -7 // 2 den Wert -4. Der Rest ist dann 1, weil -4 * 2 + 1 gleich -7 ist.

Ein Rest ungleich null hat das Vorzeichen des Divisors. Bei einem negativen Divisor ergibt 7 % -2 den Wert -1 und 7 // -2 den Wert -4. Auch diese ergeben zusammen wieder den Ausgangswert: -4 * -2 + -1 ist 7.

Das unterscheidet sich von der Umwandlung eines Quotienten mit int(): int(-7 / 2) ergibt -3, weil die Umwandlung die Nachkommastellen in Richtung null abschneidet.

Beide Operatoren akzeptieren auch Gleitkommazahlen. 7.5 // 2 ist 3.0 und 7.5 % 2 ist 1.5. Sie stehen auf derselben Vorrangstufe wie * und /, sodass 5 * 3 + 17 % 5 den Wert 17 ergibt. Der Operator % bedeutet hier Rest, nicht Prozent: Berechne 8 Prozent eines Preises mit price * 0.08 oder price * 8 / 100.

Wichtige Erkenntnisse

  • // ergibt einen abgerundeten Quotienten; % ergibt den zugehörigen Rest.
  • Für ganze Zahlen ergibt (a // b) * b + a % b wieder a, wenn b ungleich null ist.
  • Wähle einen Divisor, der zur Gruppengröße oder Einheitenumrechnung passt.
  • Die abrundende Division rundet negative Quotienten nach unten, nicht in Richtung null.
  • Ein Rest ungleich null hat das Vorzeichen des Divisors.
  • Ein Rest ist etwas anderes als ein Prozentsatz.

4.4 Text verknüpfen, Text wiederholen und Datentypen prüfen

Das Zeichen eines Operators ist nur ein Teil seiner Bedeutung. Python berücksichtigt auch die Datentypen seiner Operanden. Die Operatoren + und * funktionieren mit Zeichenketten, führen dabei aber Textoperationen aus.

Zeichenketten mit Plus verknüpfen

Die Verkettung hängt eine Zeichenkette an das Ende einer anderen:

print("ab" + "cd")
print("Hello" + "Ada")
print("Hello " + "Ada")

Diese Zeilen geben abcd, HelloAda und Hello Ada aus. Die Verkettung fügt von selbst kein Leerzeichen hinzu. Das Leerzeichen im dritten Ergebnis stammt vom letzten Zeichen in "Hello ".

Für Ziffernzeichen gilt dieselbe Regel: "5" + "3" ergibt die Zeichenkette "53". Ohne Anführungszeichen ergibt 5 + 3 die ganze Zahl 8. Wähle Zahlenwerte, wenn du rechnen möchtest, und Zeichenketten, wenn du Text meinst.

Eine Zeichenkette durch Multiplikation wiederholen

Eine mit einer ganzen Zahl multiplizierte Zeichenkette wiederholt ihre Zeichen. "3" * 2 ergibt "33", während 3 * 2 den Wert 6 ergibt. Die Anzahl der Wiederholungen kann auf beiden Seiten stehen: 3 * "ab" ergibt "ababab". Eine Wiederholung null Mal ergibt die leere Zeichenkette, also ist "ab" * 0 gleich "".

Die Anzahl der Wiederholungen muss eine ganze Zahl sein. "ab" * 2.5 löst einen TypeError aus, ebenso wie "ab" * "cd". Bei dieser Operation gibt es keine gebrochene Anzahl von Kopien.

Operationen der Reihe nach kombinieren

Auch bei diesen Ausdrücken hat die Multiplikation Vorrang vor der Addition:

print("-" * 4 + "Menu" + "-" * 4)

Zuerst erzeugt jede Wiederholung "----". Dann verknüpfen die Additionen die drei Zeichenketten und ergeben ----Menu----. Die Reihenfolge der Verknüpfungen erhält die Reihenfolge ihrer Zeichen.

Für eine Berechnung, die Teil einer Zeichenkette wird:

print("7" + str(3 * 2))

Die innere Berechnung ergibt die ganze Zahl 6. str(6) erzeugt die Zeichenkette "6". Schließlich ergibt die Verkettung "76". Sie ergibt nicht 13, weil das letzte + zwei Zeichenketten als Operanden hat.

Mit nicht kompatiblen Datentypen bewusst umgehen

"Age: " + 30 löst einen TypeError aus. Wandle die ganze Zahl vor der Verkettung um:

print("Age: " + str(30))

Das ergibt Age: 30. Alternativ zeigt print("Age:", 30) die beiden Werte mit einem Leerzeichen dazwischen. Das ist das Verhalten von print() bei getrennten Argumenten und keine Textaddition.

Ganze Zahlen und Gleitkommazahlen können bei gewöhnlichen arithmetischen Berechnungen gemischt werden: 2 * 3.0 ergibt den float 6.0. Python wandelt eine Zeichenkette mit einer Zahl bei + nicht auf dieselbe Weise in eine Zahl um. Wenn du mit "30" rechnen musst, wandle sie zuerst in einen numerischen Datentyp um.

Die Subtraktion funktioniert mit diesen Zeichenkettenoperanden nicht. "10" - 3 löst einen TypeError aus, obwohl die Zeichen 10 eine Zahl beschreiben könnten. Um einen gemischten Ausdruck vorherzusagen, bestimme den Datentyp jedes Operanden, werte die Operationen mit höherem Vorrang aus und prüfe die Datentypen bei der nächsten Operation erneut. Eine Umwandlung kann ändern, welcher Regel der nächste Operator folgt.

Wichtige Erkenntnisse

  • + verknüpft Zeichenketten, ohne Leerzeichen hinzuzufügen.
  • * wiederholt eine Zeichenkette eine ganzzahlige Anzahl von Malen.
  • Wandle für eine Textverkettung eine Zahl mit str() um oder übergib sie separat an print().
  • Beachte beim Nachvollziehen eines gemischten Ausdrucks sowohl den Vorrang als auch die Datentypen der Operanden.
5

Daten lesen, umwandeln und verständlich ausgeben

Ein vollständiges Programm braucht eine Möglichkeit, Daten zu empfangen und ein Ergebnis auszugeben. Eingaben kommen als Text an. Entscheide daher, ob das Programm diesen Text beibehalten oder in eine Zahl umwandeln muss. Führe die Berechnung mit Werten der richtigen Datentypen aus und zeige das Ergebnis dann mit einer klaren Beschriftung und sinnvollen Abständen. Mit Umwandlungen, Rundung und den Optionen von print() kann ein kurzes Programm eingegebene Antworten in eine Ausgabe verwandeln, die man verstehen und prüfen kann.

5.1 Umwandlungen erzeugen neue Werte

Eine Typumwandlung, auch Casting genannt, erzeugt einen Wert eines anderen Datentyps. Mit den Funktionen int(), float() und str() kannst du die Form wählen, die für die nächste Operation benötigt wird.

Das umgewandelte Ergebnis behalten
x = "42"
int(x)
print(type(x))

Das gibt weiterhin <class 'str'> aus. Die Umwandlung hat eine ganze Zahl erzeugt, aber keine Zuweisung hat sie gespeichert. Schreibe x = int(x), damit x auf diese ganze Zahl verweist, oder weise sie einem anderen Namen zu, wenn du beide Formen behalten möchtest.

Eine numerische Umwandlung wählen

int() akzeptiert eine Zeichenkette, die eine ganze Zahl darstellt, einschließlich eines optionalen Vorzeichens und umgebender Leerzeichen. int("42"), int("-12") und int(" 42 ") ergeben 42, -12 und 42.

Ein Dezimalpunkt in einer Zeichenkette verhindert die direkte Umwandlung in eine ganze Zahl. int("3.5") und int("4.0") lösen einen ValueError aus; das gilt auch für int("abc") und int(""). Dass 4,0 mathematisch ganzzahlig ist, macht "4.0" nicht zu einer Zeichenkette in der Form einer ganzen Zahl.

float() akzeptiert Dezimaltext und Exponentenschreibweise. float("3.5") ergibt 3.5, float("3") ergibt 3.0 und float("1e3") ergibt 1000.0. Die Funktion wandelt auch ganze Zahlen um: float(7) ergibt 7.0. Ein Dezimalkomma führt zu einem Fehler: float("3,5") löst einen ValueError aus.

Bewusst abschneiden oder runden

Die Umwandlung einer Gleitkommazahl in int entfernt ihren Nachkommateil in Richtung null. int(3.99) ergibt 3 und int(-3.99) ergibt -3. Dabei wird nicht die nächstgelegene ganze Zahl gewählt. Um Dezimaltext umzuwandeln und dann die Nachkommastellen abzuschneiden, verwende int(float("3.5")), was 3 ergibt.

round() wählt einen nächstgelegenen Wert. round(3.7) ergibt die ganze Zahl 4; round(3.14159, 2) ergibt den float 3.14. Das zweite Argument legt die Anzahl der Nachkommastellen fest.

Liegt ein Wert genau in der Mitte, wählt Python den geraden Nachbarwert: round(2.5) ergibt 2, während round(3.5) den Wert 4 ergibt. Als Gleitkommazahlen gespeicherte Dezimalbrüche liegen möglicherweise nicht genau in der Mitte. round(2.675, 2) ergibt aufgrund seiner binären Darstellung 2.67.

AusdruckErgebnisGrund
int(-3.5)-3Abschneiden in Richtung null
round(-3.5)-4Nächste ganze Zahl; bei Gleichstand zur geraden Zahl
-7 // 2-4Quotient nach unten abrunden

Diese Operationen beantworten verschiedene Fragen. Wähle die Operation, die zum gewünschten Ergebnis passt, besonders wenn negative Werte möglich sind.

Für die Verkettung in Text umwandeln

str(42) erzeugt "42" und str(3.0) erzeugt "3.0". Nach der Umwandlung verknüpft + ihre Zeichen:

print("7" + "3")
print(int("7") + int("3"))
print(str(7) + str(3))
print(float("7") + 3)

Die Ausgaben sind 73, 10, 73 und 10.0. Die Umwandlungen entscheiden, ob das letzte + Text oder Zahlen erhält.

Ein ValueError weist auf ungeeigneten Inhalt für eine Umwandlung hin, etwa bei int("abc"). Ein TypeError weist auf eine Operation hin, die mit ihren Operanden nicht kompatibel ist, etwa bei "5" + 5. Nutze diesen Unterschied, um zu entscheiden, ob du den Eingabetext untersuchst oder die Operation änderst.

Wichtige Erkenntnisse

  • Eine Umwandlung gibt einen neuen Wert zurück; weise ihn zu, wenn du ihn behalten musst.
  • int() schneidet bei Gleitkommazahlen die Nachkommastellen in Richtung null ab und benötigt für die direkte Umwandlung einer Zeichenkette Text in Form einer ganzen Zahl.
  • float() akzeptiert Text mit Dezimalpunkt und Exponentenschreibweise.
  • round() verwendet den nächstgelegenen Wert und rundet bei genauem Gleichstand zur geraden Zahl.
  • str() liefert Text für die Verkettung.
  • ValueError und TypeError bezeichnen verschiedene Arten von Fehlern.

5.2 Steuern, was print() anzeigt

print() zeigt Werte an, damit Menschen sie lesen können. Seine Argumente sind die Werte oder Ausdrücke innerhalb der Klammern. Kommas trennen die Argumente; Python wertet sie aus, bevor es ihre Ergebnisse anzeigt.

Werte mit hilfreichen Beschriftungen anzeigen
print("Total:", 5)
print(3 + 4)
print("3 + 4")

Die Zeilen zeigen Total: 5, 7 und 3 + 4. Eine Beschriftung sagt den Lesenden, was ein Wert bedeutet. Eine Berechnung ohne Anführungszeichen wird ausgewertet; ein Ausdruck in Anführungszeichen wird als Text angezeigt.

Standardmäßig setzt print() ein Leerzeichen zwischen Argumente und endet mit einem Zeilenumbruch. Es wandelt jeden Wert für die Anzeige um, sodass print("Total:", 5) Text und eine ganze Zahl ohne ausdrückliches str() mischen kann.

Vergleiche print("Total:" + str(5)), das Total:5 ausgibt. Hier erstellt + eine Zeichenkette, bevor print() sie erhält. Die Verkettung liefert kein automatisches Leerzeichen und es gibt nur ein Argument zur Anzeige.

Das Trennzeichen festlegen

Das benannte Argument sep legt den Text fest, der zwischen Argumente gesetzt wird:

print("a", "b", sep="-")
print(1, 2, 3, sep=", ")
print("A", 12, sep="")

Die Ausgabe lautet:

a-b
1, 2, 3
A12

Verwende den Namen sep. Die Schreibweise print("a", "b", "-") liefert einen dritten Wert, sodass das Ergebnis a b - ist. Ein leeres Trennzeichen fügt die angezeigten Argumente direkt zusammen; es entfernt keine Leerzeichen, die bereits in ihren Zeichenketten stehen.

Den Zeilenabschluss festlegen

Das benannte Argument end ändert, was auf den letzten Wert folgt. Standardmäßig ist das ein Zeilenumbruch. Ein leerer Abschluss hält die nächste Ausgabe in derselben Zeile:

print("a", end="")
print("b")

Das zeigt ab in einer Zeile. Du kannst Satzzeichen und einen Zeilenumbruch gemeinsam angeben:

print("Hello,", "Ada", end="!\n")

Die Ausgabe ist Hello, Ada!, gefolgt von einer neuen Zeile. sep gilt zwischen Argumenten innerhalb eines Aufrufs; end gilt nach dem letzten Argument dieses Aufrufs. Sie steuern unterschiedliche Stellen.

Zeilenumbrüche ergänzen und angezeigte Genauigkeit wählen

Der Aufruf von print() ohne Argumente gibt eine leere Zeile aus. Ein \n innerhalb einer Zeichenkette erzeugt einen Zeilenumbruch innerhalb dieser Zeichenkette, wie in print("Line 1\nLine 2"). Wiederholter Text kann eine Trennlinie bilden: print("=" * 20) zeigt zwanzig Gleichheitszeichen.

Python zeigt eine Gleitkommazahl in einer kurzen Form, die ihren gespeicherten Wert darstellt. print(1 / 3) zeigt 0.3333333333333333. Um einen gerundeten Wert anzuzeigen, berechne ihn zuerst innerhalb des Aufrufs: print(round(1 / 3, 2)) zeigt 0.33.

Die Rundung garantiert keine feste Anzahl sichtbarer Nachkommastellen. round(2.50, 2) wird als 2.5 angezeigt, weil die Gleitkommazahl abschließende Nullen nicht als Anzeigeanweisung speichert. Verwende beim Prüfen eines Programms die Ausgabe genau so, wie Python sie erzeugt.

Wichtige Erkenntnisse

  • print() wertet seine Argumente aus und zeigt Zeichenketten ohne ihre umgebenden Anführungszeichen.
  • Standardmäßig steht ein Leerzeichen zwischen den Argumenten und ein Zeilenumbruch am Ende.
  • sep ändert das Leerzeichen zwischen Argumenten; end ändert, was auf das letzte Argument folgt.
  • print() ohne Argumente fügt eine leere Zeile hinzu.
  • Die Rundung ändert die Genauigkeit eines Werts, legt aber keine feste Anzahl ausgegebener Nachkommastellen fest.

5.3 Ein Eingabe–Verarbeitung–Ausgabe-Programm erstellen und testen

input() zeigt eine Eingabeaufforderung, wartet auf eine Eingabe und das Drücken der Eingabetaste und gibt dann den eingegebenen Text ohne die Eingabetaste als Zeichenkette zurück. Ein vollständiges kurzes Programm liest die benötigten Daten, verarbeitet sie und zeigt ein Ergebnis an.

Text lesen und Zahlen umwandeln
name = input("What is your name? ")
print("Hello", name)

Das Leerzeichen am Ende der Eingabeaufforderung trennt die eingegebene Antwort von der Frage. Die Variable speichert Text als Text, auch wenn Ziffern eingegeben werden. Die Eingabe von 30 bei input() erzeugt "30", nicht die ganze Zahl 30.

Wähle vor einer arithmetischen Berechnung eine Umwandlung:

age = int(input("Age in whole years: "))
print("Next year:", age + 1)

Der innere Aufruf von input() wird zuerst ausgeführt. Bei der Eingabe von 30 gibt er "30" zurück; int() wandelt das in 30 um; die Zuweisung speichert die ganze Zahl. Die Addition ergibt dann 31.

Verwende float(input(...)), wenn Werte mit Bruchteilen zulässig sind. Eine Eingabeaufforderung sollte angeben, welche Art von Antwort erwartet wird. Die Eingabe von 2.5 oder thirty für eine Umwandlung mit int() löst einen ValueError aus. Auch die Eingabe von 98,6 für eine Umwandlung mit float() schlägt fehl; das Dezimaltrennzeichen muss ein Punkt sein.

Eine fehlende Umwandlung löst nicht immer einen Fehler aus. Erhalten zwei input-Aufrufe die Eingaben 5 und 3, werden ihre nicht umgewandelten Werte als Zeichenketten addiert und ergeben 53. Beide Operanden haben einen Datentyp, der + unterstützt, aber es ist die falsche Operation, um Mengen zu addieren.

Eine vollständige Berechnung durcharbeiten

Das Eingabe–Verarbeitung–Ausgabe-Muster macht die Hauptschritte leicht nachvollziehbar:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = float(input("Temperature in °F: "))
celsius = (fahrenheit - 32) * 5 / 9
print(fahrenheit, "°F is", round(celsius, 1), "°C")

Bei der Eingabe 98.6 liest das Programm den float 98.6. Es subtrahiert 32 und erhält 66.6, multipliziert mit 5 und erhält 333.0 und dividiert durch 9 und erhält 37.0. Die angezeigte Zeile lautet 98.6 °F is 37.0 °C. Die Eingabe 50 wird zu 50.0, sodass die Zeile 50.0 °F is 10.0 °C lautet.

Hier ist ein Programm mit ganzzahligen Daten:

total_minutes = int(input("Enter a whole number of minutes: "))
hours = total_minutes // 60
minutes = total_minutes % 60
print("Hours:", hours, "Minutes:", minutes)

Die Eingabe 135 erzeugt Hours: 2 Minutes: 15. Die Beschriftungen funktionieren für null, eins und größere Ergebnisse, ohne den Wortlaut zu ändern. Die beiden Verarbeitungszeilen verwenden dieselbe ursprüngliche Gesamtzahl; die Zuweisung an hours entfernt nichts aus total_minutes.

Gewöhnliche Werte und Grenzwerte testen

Wähle Eingaben, deren Ergebnisse du von Hand berechnen kannst. Für das Temperaturprogramm sollte 32 den Wert 0.0 °C und 212 den Wert 100.0 °C ergeben. Teste für Minuten 0, 59 und 60: Diese prüfen den Anfangswert und den Übergang von keiner vollen Stunde zu einer vollen Stunde.

Teste auch einen typischen Wert wie 135. Vergleiche die genauen Beschriftungen, Abstände, Zahlenergebnisse und Datentypen mit deiner Vorhersage. Läuft der Code, aber das Ergebnis ist falsch, verfolge die gespeicherten Werte und die Reihenfolge der Rechenoperationen. Schlägt eine Umwandlung fehl, untersuche den eingegebenen Text und den Datentyp, den deine Eingabeaufforderung verlangt.

Wichtige Erkenntnisse

  • input() gibt Text zurück, auch wenn Ziffern eingegeben werden.
  • Wandle Eingaben um, bevor du mit ihnen rechnest.
  • Verwende klare Eingabeaufforderungen und beschrifte die Ausgabe.
  • Trenne das Lesen der Daten, die Berechnung und die Anzeige des Ergebnisses.
  • Prüfe gewöhnliche Werte und Grenzwerte anhand von Antworten, die du von Hand berechnet hast.

Variablen in Python: Beispiele

5 Interaktive Lektionen

1

Ein kleines Programm ausführen und reparieren

13 Schritte
Wechsle zwischen der Shell und einem gespeicherten Skript, lies eine Fehlermeldung und erkläre eine Zeile mit einem Kommentar.
  1. 1
    EinführungMit einer sichtbaren Vorhersage beginnen

    Ein Programm kann einen Wert berechnen, ohne ihn anzuzeigen. Sage vor der Ausführung von Code zwei Dinge voraus: was Python tun wird und was ein Mensch sehen wird.

    Wir vergleichen zuerst einen Versuch in der Shell mit einem gespeicherten Skript. Dann untersuchen wir Fehler und Kommentare. Behalte den Unterschied zwischen Codeausführung und sichtbarer Ausgabe im Blick: Eine Zeile kann erfolgreich ausgeführt werden, ohne Text auf dem Bildschirm zu erzeugen.

  2. 2
    BeispielEinen Ausdruck in der Shell ausprobieren

    Gib an der Eingabeaufforderung >>> der Python-Shell den Ausdruck 9 * 3 ein. Python wertet den Ausdruck aus und zeigt automatisch 27 an.

    Die Eingabeaufforderung wird von der Shell bereitgestellt; du gibst nur den Ausdruck ein. Eine Eingabeaufforderung ... bedeutet, dass Python auf den Rest derselben Anweisung wartet. Die Shell ist für eine solche schnelle Prüfung praktisch, während ein gespeichertes Skript eine Folge von Anweisungen für die erneute Ausführung bereithält.

  3. 3
    ErklärungEin Skript seine Berechnung anzeigen lassen

    Ein Skript, das nur 9 * 3 enthält, berechnet das Produkt, zeigt aber nichts an. Um es anzuzeigen, schreibe:

    print(9 * 3)
    print("Calculation finished")
    

    Die Ausgabe ist 27, gefolgt von Calculation finished in der nächsten Zeile. Der Interpreter folgt der Reihenfolge der Anweisungen. Führe das Skript mit dem Ausführungsbefehl des Editors oder einem Terminalbefehl aus; gib diesen Terminalbefehl nicht an der Python-Eingabeaufforderung ein.

  4. 4
    HerausforderungVorhersagen, was tatsächlich angezeigt wird

    Ein gespeichertes Skript enthält diese beiden Zeilen. Was wird angezeigt?

    11 + 5
    print("Ready to check")
    

    ---reveal---

    Nur Ready to check erscheint. Die erste Zeile berechnet 16, gibt den Wert aber nicht aus. Wenn du diesen ersten Ausdruck direkt in die interaktive Shell eingeben würdest, würde die Shell seinen Wert automatisch anzeigen. Der Unterschied ergibt sich daraus, wo der Ausdruck ausgeführt wird.

  5. 5
    ErklärungEinen abgebrochenen Lauf von einer falschen Antwort unterscheiden

    Ein Syntaxfehler bedeutet, dass Python das Skript nicht lesen kann und die Ausführung deshalb nie beginnt. Ein Laufzeitfehler tritt auf, nachdem die Ausführung begonnen hat, und stoppt sie bei der fehlschlagenden Operation.

    Bei einem Logikfehler kann das Programm ohne Meldung laufen. Eine falsche Gruppierung in einer Formel erzeugt zum Beispiel trotzdem eine zulässige Berechnung. Vergleiche ihr Ergebnis mit einer Rechnung von Hand, statt darauf zu warten, dass Python den Fehler erkennt.

  6. 6
    BeispielZuerst die letzte Fehlerzeile lesen

    Betrachte diesen Code:

    distance = 21
    print(distnace)
    

    Ein Traceback endet mit der Angabe von NameError und dem nicht definierten Namen distnace. Lies diese letzte Meldung und untersuche dann die gemeldete Zeile darüber. Der Name, dem zuvor ein Wert zugewiesen wurde, ist distance; die beiden Schreibweisen unterscheiden sich. Korrigiere den Zugriff zu print(distance), was 21 anzeigt.

  7. 7
    TippDie nächste hilfreiche Prüfung wählen

    Lass den Fehlertyp deine Suche eingrenzen. Prüfe bei NameError die Schreibweise, Groß- und Kleinschreibung und ob der Variablen zuvor ein Wert zugewiesen wurde. Untersuche bei TypeError die Datentypen, die die Operation verwendet. Untersuche bei ValueError den Text, der an eine Umwandlung übergeben wurde.

    Scheint die gemeldete Zeile richtig zu sein, prüfe die vorherige Zeile auf ein nicht geschlossenes Anführungszeichen oder eine nicht geschlossene Klammer. Behebe einen Fehler und führe das Programm erneut aus, um das nächste erreichbare Problem zu finden.

  8. 8
    HerausforderungBleibt die erste Nachricht sichtbar?

    Was wird ausgegeben, bevor dieses Programm stoppt? items wurde kein Wert zugewiesen.

    print("Checking")
    print(items)
    print("Finished")
    

    ---reveal---

    Checking wird ausgegeben. Die nächste Zeile löst einen NameError aus, sodass die letzte Zeile nicht ausgeführt wird. Das ist ein Laufzeitfehler: Python konnte das Skript lesen, aber während der Ausführung keinen Wert nachschlagen. Frühere Ausgaben bleiben sichtbar.

  9. 9
    ErklärungDie nötige Bedeutung für Lesende ergänzen

    Ein Kommentar beginnt mit # außerhalb einer Zeichenkette und reicht bis zum Ende der Zeile. Er kann den Grund für einen Wert erklären:

    service_rate = 0.03  # 3% processing fee
    

    Der Kommentar erklärt den Lesenden, wofür der Satz steht. Python ignoriert ihn bei der Ausführung der Zuweisung. Lass mindestens zwei Leerzeichen vor dem Kommentarzeichen am Zeilenende und ein Leerzeichen danach. Ein klarer Name und ein nützlicher Kommentar ergänzen sich.

  10. 10
    HerausforderungDie Grenze des Kommentars finden

    Was gibt diese Zeile aus und welche Wörter ignoriert Python?

    print("Order #16")  # Packing label
    

    ---reveal---

    Sie gibt Order #16 aus. Das Rautezeichen innerhalb der Anführungszeichen gehört zur Zeichenkette. Das zweite Rautezeichen beginnt den Kommentar, daher wird Packing label ignoriert. Ob ein Zeichen innerhalb oder außerhalb einer Zeichenkette steht, ändert, wie Python es liest.

  11. 11
    TippEinen Kommentar nach einer Änderung aktuell halten

    Wenn sich die Bearbeitungsgebühr von 3 Prozent auf 5 Prozent ändert, ändere sowohl service_rate auf 0.05 als auch den Kommentar auf 5% processing fee.

    Python warnt dich nicht vor einem veralteten Kommentar, weil Kommentare nicht ausgeführt werden. Lesende können dadurch trotzdem in die Irre geführt werden. Für vorübergehende Tests kann # eine Anweisung deaktivieren; entferne alte deaktivierte Zeilen, wenn sie dir beim Verständnis des Programms nicht mehr helfen.

  12. 12
    HerausforderungAusgabe, Kommentare und einen Fehler kombinieren

    Was erscheint bei der Ausführung dieses gespeicherten Skripts? Nimm an, dass zuvor keine Namen definiert wurden.

    print("Status #1")  # Show the status.
    Print("Done")
    

    ---reveal---

    Der Kommentar wird ignoriert und Status #1 wird ausgegeben. Print löst dann einen NameError aus, weil Python bei Namen zwischen Groß- und Kleinschreibung unterscheidet. Der eingebaute Name lautet print. Die gültige erste Ausgabe bleibt sichtbar, weil der Fehler während der Ausführung auftritt.

  13. 13
    ZusammenfassungDie Ausgabe als Beleg nutzen

    Die Shell zeigt Ausdruckswerte an, während ein Skript einen ausdrücklichen Ausgabeaufruf benötigt. Ein Laufzeitfehler lässt frühere Ausgaben sichtbar; ein Syntaxfehler verhindert den Start des Skripts.

    Schreibe für dein nächstes kurzes Programm vor der Ausführung eine erwartete Ausgabe auf. Trifft die Vorhersage nicht zu, nutze den Fehlertyp oder verfolge die Werte, um die nächste Prüfung zu wählen. Konzentriere Kommentare auf Bedeutungen, die der Code nicht bereits erklärt.

2

Den Datentyp an der Schreibweise eines Werts erkennen

14 Schritte
Vergleiche Literale, untersuche Datentypen und erstelle Zeichenketten mit den gewünschten Zeichen.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungÄhnlich aussehende Werte können sich unterschiedlich verhalten
  2. 2
    BeispielDrei Formen derselben Ziffern untersuchen
  3. 3
    VerbindungDaten passend zu ihrem Zweck wählen
  4. 4
    HerausforderungBooleschen Text von einem booleschen Wert unterscheiden
  5. 5
    ErklärungEinen float mit Exponentenschreibweise skalieren
  6. 6
    KernaussageEin Komma verändert die Daten
  7. 7
    HerausforderungEinen kleinen Dezimalwert schreiben
  8. 8
    TippDie kleinen zusätzlichen Ziffern deuten
  9. 9
    BeispielZur Nachricht passende äußere Anführungszeichen wählen
  10. 10
    ErklärungEinen Zeilenumbruch zum Teil einer Zeichenkette machen
  11. 11
    HerausforderungNamen mit und ohne Anführungszeichen vorhersagen
  12. 12
    KernaussageAuch ein Leerzeichen zählt als Datum
  13. 13
    HerausforderungVon der Schreibweise zum Verhalten
  14. 14
    ZusammenfassungDen Wert vor der Operation prüfen
3

Einen Wert durch Zuweisungen verfolgen

14 Schritte
Lies Zuweisungen, verbessere Namen und verfolge Aktualisierungen und Tauschvorgänge, ohne einen alten Wert zu verlieren.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungEinen Zeitpunkt nach dem anderen verfolgen
  2. 2
    BeispielZuerst auswerten, dann zuweisen
  3. 3
    KernaussageEin gespeichertes Ergebnis enthält keine Formel
  4. 4
    HerausforderungEine Kopie vor der erneuten Zuweisung verfolgen
  5. 5
    VerbindungEinen lesbaren Namen wählen
  6. 6
    BeispielEingebaute Namen verfügbar halten
  7. 7
    HerausforderungEinen Namen korrigieren, ohne seine Bedeutung zu ändern
  8. 8
    ErklärungAusgehend von einem vorhandenen Wert aktualisieren
  9. 9
    BeispielNur die Änderungen aufschreiben
  10. 10
    HerausforderungBeobachten, wie eine Aktualisierung den Datentyp ändert
  11. 11
    ErklärungEinen ursprünglichen Wert vor dem Überschreiben erhalten
  12. 12
    ErklärungEinen gleichzeitigen Tausch lesen
  13. 13
    HerausforderungNamen, Kopien und Aktualisierungen kombinieren
  14. 14
    ZusammenfassungAktuelle Werte statt Absichten verfolgen
4

Ausdrücke Operation für Operation auswerten

18 Schritte
Wähle arithmetische und Zeichenkettenoperationen, wende Gruppierungen an und teile Mengen in volle Gruppen und Reste auf.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungReihenfolge und Datentyp verfolgen
  2. 2
    ErklärungDas Zeichen der Operation zuordnen
  3. 3
    BeispielDen Datentyp zum Quotienten notieren
  4. 4
    HerausforderungEine Potenz und ihr Ergebnis bestimmen
  5. 5
    BeispielDie Operation mit dem höchsten Vorrang zuerst ausführen
  6. 6
    KernaussageGleicher Vorrang bedeutet von links nach rechts
  7. 7
    ErklärungPotenzen werden in die andere Richtung gruppiert
  8. 8
    HerausforderungEine gruppierte Berechnung korrigieren
  9. 9
    BeispielEine Menge in volle Gruppen aufteilen
  10. 10
    ErklärungAbrunden bedeutet nach unten, auch unter null
  11. 11
    VerbindungZiffern als Zehnergruppen nutzen
  12. 12
    HerausforderungBeide Teile der Zeit bestimmen
  13. 13
    ErklärungText verwendet dieselben Zeichen anders
  14. 14
    BeispielEinen Rahmen vor der Verkettung erstellen
  15. 15
    HerausforderungDas innere Ergebnis in Text umwandeln
  16. 16
    TippEine nicht kompatible Operation finden
  17. 17
    HerausforderungRest, Potenz und Text kombinieren
  18. 18
    ZusammenfassungDas Zwischenergebnis prüfen
5

Eingegebene Daten in ein geprüftes Ergebnis umwandeln

15 Schritte
Wähle Umwandlungen, steuere die Ausgabe und erstelle ein Programm, das Lesen, Berechnung und Anzeige trennt.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungLesen, berechnen und dann das Ergebnis erklären
  2. 2
    ErklärungDen neuen Wert einer Umwandlung behalten
  3. 3
    BeispielEin float und Dezimaltext werden unterschiedlich umgewandelt
  4. 4
    HerausforderungAbschneiden und Runden unterscheiden
  5. 5
    ErklärungGetrennte Werte an print übergeben
  6. 6
    BeispielTrennzeichen und Abschluss ändern
  7. 7
    HerausforderungZwei print-Aufrufe zusammen vorhersagen
  8. 8
    TippEinen Wert runden, ohne aufgefüllten Text zu versprechen
  9. 9
    BeispielEine ganzzahlige Eingabe lesen
  10. 10
    BeispielZwei Ergebnisse aus derselben Gesamtzahl berechnen
  11. 11
    BeispielDie endgültigen Werte beschriften
  12. 12
    HerausforderungDie fehlende Umwandlung finden
  13. 13
    VerbindungDie Stelle testen, an der sich die Antwort ändert
  14. 14
    HerausforderungUmwandlung, Division und Ausgabe kombinieren
  15. 15
    ZusammenfassungJeden Schritt einzeln prüfen

Variablen in Python: Übungsaufgaben

50 Übungsfragen in 5 Sets

Set 1: Kurze Programme lesen und ihre Ergebnisse vorhersagen10 Übungsfragen

Frage 1 von 10

Ein gespeichertes Skript enthält nur 18 - 6. Was erscheint bei seiner Ausführung?
  1. Die Zahl 12 erscheint.
  2. Der Ausdruck 18 - 6 erscheint.
  3. Es wird nichts angezeigt.
  4. Ein Syntaxfehler erscheint.
Antwort zeigenAntwort ausblenden
Antwort: C
Ein Skript wertet einen allein stehenden Ausdruck aus, ohne sein Ergebnis anzuzeigen. Daher erscheint nichts. Die interaktive Shell würde für denselben Ausdruck 12 anzeigen, was leicht verwechselt werden kann. Verwende in einem Skript print(18 - 6), wenn das Ergebnis sichtbar sein soll.

Frage 2 von 10

Ein Skript enthält diesen Code. Welche Ausgabe erscheint, bevor es stoppt?

print("Ready")
print(missing_total)
print("Done")

missing_total wurde kein Wert zugewiesen.

  1. Nur Ready
  2. Ready und Done
  3. Gar keine Ausgabe
  4. Nur Done
Antwort zeigenAntwort ausblenden
Antwort: A
Die erste Anweisung gibt Ready aus. Die nächste Anweisung löst einen NameError aus, sodass die Ausführung den letzten print-Aufruf nie erreicht. Das ist ein Laufzeitfehler, bei dem frühere Ausgaben erhalten bleiben; ein Syntaxfehler würde den Start des gesamten Skripts verhindern.

Frage 3 von 10

Welchen Datentyp meldet type("False")?
  1. bool
  2. int
  3. float
  4. str
Antwort zeigenAntwort ausblenden
Antwort: D
Die Anführungszeichen machen "False" zu einer Zeichenkette mit fünf Zeichen, daher ist ihr Datentyp str. Das boolesche Literal False hat keine Anführungszeichen und einen großen Anfangsbuchstaben. Ein Wort, das innerhalb einer Zeichenkette wie ein boolescher Wert aussieht, ist weiterhin Text; Python deutet die Zeichen nicht als Code um.

Frage 4 von 10

Welcher Python-Ausdruck berechnet fünf hoch drei?
  1. 5 ^ 3
  2. 5 ** 3
  3. 5 * 3
  4. 5 + 3
Antwort zeigenAntwort ausblenden
Antwort: B
** ist Pythons Potenzoperator, daher berechnet 5 ** 3 den Wert 125. Das Zirkumflexzeichen ^ führt eine andere Operation aus und bedeutet keine Potenzierung. Eine Multiplikation mit drei würde fünf dreimal addieren, während eine dritte Potenz drei Fünfen miteinander multipliziert.

Frage 5 von 10

Was zeigt print("North\nSouth") an?
  1. North\nSouth in einer Zeile
  2. North und South in getrennten Zeilen
  3. North South in einer Zeile
  4. NorthnSouth in einer Zeile
Antwort zeigenAntwort ausblenden
Antwort: B
Die Escape-Sequenz \n steht innerhalb der Zeichenkette für einen Zeilenumbruch, daher beginnt South in einer zweiten Zeile. Python gibt den umgekehrten Schrägstrich und das n hier nicht als zwei sichtbare Zeichen aus. Um einen wörtlichen umgekehrten Schrägstrich vor n zu erhalten, müsste die Zeichenkette im Code einen doppelten umgekehrten Schrägstrich enthalten.

Frage 6 von 10

Was gibt dies aus?

stock = 14
saved = stock
stock = 9
print(stock, saved)
  1. 9 9
  2. 14 9
  3. 14 14
  4. 9 14
Antwort zeigenAntwort ausblenden
Antwort: D
Bei saved = stock erhält der Name saved den aktuellen Wert 14. Die erneute Zuweisung an stock lässt dann nur diesen Namen auf 9 verweisen, sodass die Ausgabe 9 14 lautet. Das Ergebnis 9 9 würde die frühere Zuweisung als dauerhafte Verbindung zwischen den Namen behandeln, was sie nicht ist.

Frage 7 von 10

Welcher Variablenname in snake_case ist für die Anzahl verfügbarer Sitzplätze gültig?
  1. available_seats
  2. available-seats
  3. 2available_seats
  4. available seats
Antwort zeigenAntwort ausblenden
Antwort: A
available_seats verbindet kleingeschriebene Wörter mit einem Unterstrich und beginnt mit einem Buchstaben. Ein Bindestrich wird als Subtraktion gelesen, daher ist available-seats kein einzelner Variablenname. Leerzeichen dürfen nicht innerhalb eines Namens vorkommen und eine Ziffer darf nicht sein erstes Zeichen sein.

Frage 8 von 10

Welchen Wert und Datentyp erzeugt 24 / 6?
  1. 4, eine ganze Zahl
  2. 0, eine ganze Zahl
  3. 4.0, eine Gleitkommazahl
  4. 0.0, eine Gleitkommazahl
Antwort zeigenAntwort ausblenden
Antwort: C
Die Division mit / ergibt bei ganzzahligen Operanden einen float, daher erzeugt 24 / 6 den Wert 4.0. Dass die Division aufgeht, ändert diese Datentypregel nicht. 24 // 6 würde dagegen die ganze Zahl 4 erzeugen, während % den Rest null statt des Quotienten bestimmen würde.

Frage 9 von 10

Welchen Wert erzeugt 40 - 18 / 3 * 2 + 1?
  1. 29.0
  2. 38.0
  3. 15.666666666666666
  4. 28.0
Antwort zeigenAntwort ausblenden
Antwort: A
Division und Multiplikation haben denselben Vorrang und erfolgen von links nach rechts: 18 / 3 ergibt 6.0, die anschließende Multiplikation mit 2 ergibt 12.0. Die verbleibende Berechnung ist 40 - 12.0 + 1, also 29.0. Würde man 3 * 2 zuerst multiplizieren, entstünde fälschlich ein Nenner von sechs.

Frage 10 von 10

Was zeigt print("Zone", 4, sep="-") an?
  1. Zone 4
  2. Zone4-
  3. Zone 4 -
  4. Zone-4
Antwort zeigenAntwort ausblenden
Antwort: D
sep="-" setzt einen Bindestrich zwischen die beiden angezeigten Argumente und ergibt Zone-4. Es setzt den Bindestrich nicht hinter den letzten Wert; der Abschluss bleibt der standardmäßige Zeilenumbruch. Ohne das benannte Argument sep bliebe das übliche Leerzeichen zwischen den Argumenten.
Set 2: Mit veränderlichen Werten und Daten verschiedener Typen arbeiten10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was zeigt dies an?

print("Bay #7")  # Pickup point
  1. Bay
  2. Bay #7
  3. Bay #7 Pickup point
  4. Bay Pickup point
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Ausweisnummer lautet "00482" und wird nicht für Berechnungen verwendet. Welcher Datentyp erhält sie am besten?
  1. Eine ganze Zahl
  2. Eine Gleitkommazahl
  3. Ein boolescher Wert
  4. Eine Zeichenkette
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Welchen Wert hat cost am Ende?

units = 6
rate = 4
cost = units * rate
units = 8
  1. 24
  2. 32
  3. 8
  4. 6
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was gibt dies aus?

points = 12
points -= 5
points *= 3
print(points)
  1. 7
  2. 31
  3. 21
  4. 36
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Welchen Wert und Datentyp hat das Literal 6e2?
  1. 600, eine ganze Zahl
  2. 6.2, eine Gleitkommazahl
  3. 600.0, eine Gleitkommazahl
  4. 62, eine ganze Zahl
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Auf ein Blech passen 8 Brötchen. Ein Bäcker hat 53 Brötchen. Wie viele volle Bleche und übrige Brötchen gibt es?
  1. 6 volle Bleche und 5 Brötchen
  2. 6 volle Bleche und 6 Brötchen
  3. 7 volle Bleche und 3 Brötchen
  4. 5 volle Bleche und 6 Brötchen
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was zeigt print("Go" * 2 + "!") an?
  1. Go Go!
  2. Go!Go!
  3. Go2!
  4. GoGo!
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Was ist das Ergebnis von int(-8.9)?
  1. -9
  2. -8
  3. 8
  4. -8.0
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Was erscheint in der ersten Ausgabezeile?

print("P", "Q", sep=":", end="|")
print("R", "S", sep="-")
  1. P:Q| R-S
  2. P:Q:R-S
  3. P-Q|R:S
  4. P:Q|R-S
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Bei der ersten Eingabeaufforderung wird 7 und bei der zweiten 4 eingegeben. Was gibt dieses Programm aus?

first = input("First: ")
second = input("Second: ")
print(int(first + second) + 2)
  1. 76
  2. 13
  3. 742
  4. 11
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Ausdrücke nachvollziehen und Fehler erkennen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

In einer neuen Python-Shell gibst du amount = 11 und dann amount + 4 ein. Was zeigt die Shell für diese beiden Eingaben an?
  1. 11 bei der Zuweisung, dann 15
  2. Bei beiden Eingaben nichts
  3. 11 bei der Zuweisung, dann amount + 4
  4. Nichts bei der Zuweisung, dann 15
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein Skript enthält diesen Code. Welche Ausgabe erscheint vor der Fehlermeldung?

print("Loading")
value = 6
print("Value:", value
  1. Nur Loading erscheint.
  2. Keine Ausgabe erscheint.
  3. Loading und Value: 6 erscheinen.
  4. Nur Value: 6 erscheint.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Welches Python-Literal stellt die ganze Zahl zweieinhalb Millionen korrekt dar?
  1. 2,500,000
  2. 2.500.000
  3. 2_500_000
  4. 2_500_000.0
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Was zeigt print('He said "yes"') an?
  1. He said "yes"
  2. He said yes
  3. 'He said "yes"'
  4. He said 'yes'
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Eine Person schreibt MAX_ATTEMPTS = 5. Was teilen die Großbuchstaben mit?
  1. Python wird jede spätere Zuweisung zurückweisen.
  2. Die Variable kann nur ganze Zahlen enthalten.
  3. Der Name ist ein reserviertes Python-Schlüsselwort.
  4. Der Wert soll unverändert bleiben.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Was gibt dies aus?

a = 4
b = 9
a, b = b, a
a += b
print(a, b)
  1. 18 9
  2. 13 4
  3. 13 9
  4. 9 13
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Welchen Wert erzeugt (-3) ** 2 + 2 ** 3?
  1. 17
  2. -1
  3. 25
  4. 15
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Welche Werte ergeben -17 // 5 und -17 % 5 in dieser Reihenfolge?
  1. -3 und -2
  2. -4 und -3
  3. -4 und 3
  4. -3 und 2
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Was passiert, wenn Python int("12.0") auswertet?
  1. Es gibt die ganze Zahl 12 zurück.
  2. Es löst ValueError aus.
  3. Es gibt den float 12.0 zurück.
  4. Es löst TypeError aus.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Es wird 84.5 eingegeben. Das Programm soll Fahrenheit in Celsius umrechnen. Welcher Ersatz für die Berechnungszeile korrigiert das Ergebnis?

fahrenheit = float(input("Temperature in °F: "))
celsius = fahrenheit - 32 * 5 / 9
print(round(celsius, 1))
  1. celsius = fahrenheit - (32 * 5 / 9)
  2. celsius = (fahrenheit - 32 * 5) / 9
  3. celsius = (fahrenheit - 32) * 5 / 9
  4. celsius = fahrenheit - 32 * (5 / 9)
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Die zur Aufgabe passende Operation wählen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Derselbe gültige Text wird als neues Skript ausgeführt und dann in einer neuen Shell Anweisung für Anweisung eingegeben: n = 6, n * 3, print(n). Welcher Unterschied erscheint?
  1. Beide zeigen 18 und dann 6; es gibt keinen Unterschied.
  2. Das Skript zeigt 18; die Shell zeigt 6 und dann 18.
  3. Das Skript zeigt 6; die Shell zeigt 6, 18, dann 6.
  4. Das Skript zeigt 6; die Shell zeigt 18 und dann 6.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Warum schlägt die letzte Zeile fehl?

input = "Leah"
name = input("Name: ")
  1. Das Wort input ist ein reserviertes Schlüsselwort.
  2. Der Name input verweist nun auf eine Zeichenkette.
  3. Eine Eingabeaufforderung darf keinen Doppelpunkt enthalten.
  4. Um den Aufruf fehlt eine numerische Umwandlung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Was zeigt print("Row", 8, "|", end="!") an, bevor der Cursor stehen bleibt?
  1. Row|8!
  2. Row8|!
  3. Row 8 |!
  4. Row 8 !|
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein Programm zur Umrechnung von Minuten in Stunden liefert für die Eingabe 145 das erwartete Ergebnis. Als Nächstes wird 119 eingegeben. Was gibt es aus und welche Änderung lässt hours volle Stunden zählen?

total_minutes = int(input("Whole minutes: "))
hours = round(total_minutes / 60)
minutes = total_minutes % 60
print(hours, minutes)
  1. 2 59; verwende hours = total_minutes // 60.
  2. 1 59; verwende hours = total_minutes // 60.
  3. 2 59; verwende hours = int(total_minutes) / 60.
  4. 1 59; verwende hours = total_minutes % 60.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein Skript enthält die folgenden Zeilen. Welche Nachricht erscheint?

# print("Check")
print("Open #2")
  1. Open #2
  2. Check und Open #2
  3. Open
  4. Check und Open
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Welchen Wert und Datentyp erzeugt 3 + 2.0?
  1. 5, eine ganze Zahl
  2. "32.0", eine Zeichenkette
  3. 5.0, eine Gleitkommazahl
  4. "5.0", eine Zeichenkette
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was zeigt print("label", label, sep=":") nach label = "Desk" an?
  1. Desk:Desk
  2. label:Desk
  3. label:label
  4. "label":"Desk"
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Was gibt dies aus?

base = 8
double = base * 2
copy = double
base = 10
double = base * 2
print(copy, double)
  1. 20 20
  2. 16 16
  3. 8 20
  4. 16 20
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Welche Werte erzeugen int(-6.5), round(-6.5) und -13 // 2 in dieser Reihenfolge?
  1. -6, -6, -7
  2. -7, -6, -7
  3. -6, -7, -6
  4. -7, -7, -6
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Welche Werte erzeugen 9.0 // 4 und 9 // 4 in dieser Reihenfolge?
  1. 2 und 2
  2. 2.25 und 2
  3. 2.0 und 2
  4. 2.0 und 2.0
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 5: Abläufe, Umwandlungen und Programmprüfungen kombinieren10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was zeigt print("6" + str(2 + 3) * 2) an?
  1. 6565
  2. 610
  3. 655
  4. 16
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Es wird 4 eingegeben. Was erscheint außer der Eingabeaufforderung und der Fehlermeldung?

count = input("Count: ")
print("Received")
next_count = count + 1
print(next_count)
  1. Received, dann wird 5 ausgegeben.
  2. Received, dann wird 41 ausgegeben.
  3. Nichts; keine Anweisung kann laufen.
  4. Received, dann stoppt die Ausführung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Kommentar soll einen Gebührensatz erklären. Der Code ändert sich von fee_rate = 0.04 # 4% service fee zu fee_rate = 0.06 # 4% service fee. Was sollte korrigiert werden?
  1. Den Kommentar auf eine Gebühr von 6 % ändern.
  2. Den Kommentar behalten, da Python ihn ignoriert.
  3. Den Kommentar zum Aktualisieren in Anführungszeichen setzen.
  4. Den Dezimalpunkt aus dem Satz entfernen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Warum kann 0.1 + 0.2 als 0.30000000000000004 angezeigt werden?
  1. Der Plusoperator verbindet die Dezimalziffern als Text.
  2. Die gespeicherten binären Gleitkommazahlen nähern die Dezimalbrüche an.
  3. Der Interpreter rundet jede Summe um eine Ziffer auf.
  4. Der Dezimalpunkt trennt zwei unabhängige Werte.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Was gibt dies aus?

rate = 6
hours = 4
pay = rate * hours
rate += 2
pay += rate
hours /= 2
print(pay, hours)
  1. 40 2.0
  2. 32 2
  3. 24 2.0
  4. 32 2.0
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Welchen Wert erzeugt -2 ** 3 ** 2 + 20 // 3 % 4?
  1. -62
  2. -510
  3. -506
  4. 514
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine vorzeichenbehaftete Anpassung beträgt -23. Ihr Quotient und Rest bei Division durch 6 müssen zusammen wieder diesen Wert ergeben. Wie lauten die beiden Ergebnisse?
  1. Quotient -3, Rest -5
  2. Quotient -4, Rest -1
  3. Quotient -4, Rest 1
  4. Quotient -3, Rest 5
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Was zeigt print("Code: " + str(3 * 4)) an?
  1. Code: 12
  2. Code: 34
  3. Code: 121212
  4. Code: 3 * 4
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Was gibt dies aus?

reading = "18"
float(reading)
print(reading + "2")
  1. 20.0
  2. 182
  3. 18.02
  4. 20
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Automat berechnet 3 Dollar für jeden vollständigen 15-Minuten-Block und 1 Dollar für jede übrige Minute. Was soll die Berechnungszeile ersetzen, um die Gebühr für eine ganzzahlige Eingabe zu berechnen?

minutes = int(input("Minutes: "))
charge = 0
print("Charge in dollars:", charge)
  1. charge = (minutes / 15) * 3 + minutes % 15
  2. charge = (minutes // 15) * 3 + minutes // 15
  3. charge = minutes // (15 * 3) + minutes % 15
  4. charge = (minutes // 15) * 3 + minutes % 15
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

71 Schlüsselbegriffe, jeweils mit Definition

A

Ablauftabelle
Eine Ablauftabelle hält den Wert jeder Variablen nach jeder Anweisung fest und macht so die Reihenfolge und die Auswirkungen der Ausführung für eine Prüfung von Hand sichtbar.
Eine neue Zeile nach price = 10 ändert die Preisspalte, während eine früher gespeicherte Summe unverändert bleibt.
abrundende Division
Die abrundende Division dividiert zwei Zahlenwerte und rundet den Quotienten nach unten, bei einem negativen Quotienten also zu einem stärker negativen Wert hin.
Der Ausdruck -10 // 3 ergibt -4, weil −3,333… nach unten und nicht in Richtung null gerundet wird.
Abschneiden der Nachkommastellen
Das Abschneiden der Nachkommastellen entfernt den Bruchteil einer Zahl in Richtung null, wie int() bei einer Gleitkommazahl, ohne auf die nächste ganze Zahl zu runden.
Die Umwandlung von -9.8 mit int() ergibt -9, während das Abrunden desselben negativen Werts -10 ergeben würde.
Akkumulator
Ein Akkumulator ist eine Variable, die eine laufende Summe sammelt, bei einem Anfangswert beginnt und sich ändert, wenn Werte addiert werden.
Initialisiere total = 0, bevor du Aktualisierungen wie total += cost verwendest, um mehrere Beträge zu sammeln.
Anweisung
Eine Anweisung ist eine Instruktion im Python-Code, etwa eine Zuweisung oder ein print-Aufruf, die als Teil eines Programms ausgeführt wird.
In einem einfachen Skript weist count = 6 einen Wert zu, bevor die spätere Anweisung print(count) ihn verwendet.
Argument
Ein Argument ist ein Wert oder Ausdruck, der innerhalb der Klammern eines Funktionsaufrufs übergeben wird und der Funktion erlaubt, mit diesen Daten zu arbeiten.
In print("Score:", 9) sind die Beschriftung und die ganze Zahl getrennte Argumente, die in dieser Reihenfolge angezeigt werden.
Assoziativität
Die Assoziativität bestimmt, wie gleichrangige Operationen gruppiert werden; die meisten werden von links nach rechts gruppiert, Potenzen dagegen von rechts nach links.
Der Ausdruck 16 / 4 * 2 wird als (16 / 4) * 2 gruppiert, sodass das Ergebnis 8.0 und nicht 2.0 ist.
Ausdruck
Ein Ausdruck ist Python-Code, der zu einem Wert ausgewertet wird, von einem einzelnen Literal oder Namen bis zu einer Kombination mehrerer Operationen.
In print(7 * 6) wird der Ausdruck 7 * 6 ausgewertet, bevor sein Wert auf dem Bildschirm angezeigt wird.
Ausdruck mit gemischten Datentypen
Ein Ausdruck mit gemischten Datentypen kombiniert Werte verschiedener Datentypen. Daher muss bei jeder Operation geprüft werden, ob die Kombination der Operanden zulässig ist.
Die Berechnung 2 + 0.5 funktioniert numerisch, während "2" + 0.5 ohne ausdrückliche Umwandlung fehlschlägt.
Ausgabe
Eine Ausgabe ist Information, die ein Programm anzeigt, etwa eine berechnete Zahl und ihre Beschriftung, damit ein Mensch das Ergebnis lesen kann.
Die Zeile Distance: 18 miles gibt sowohl einen Wert als auch die Einheit an, die für seine Deutung benötigt wird.
Auskommentieren
Auskommentieren bedeutet, ein Kommentarzeichen vor eine Anweisung zu setzen, damit sie nicht ausgeführt wird, während ihr Text verfügbar bleibt.
Ein # vor einem vorübergehenden print-Aufruf deaktiviert diese Ausgabe, ohne die Zeile aus dem Editor zu löschen.

B

Beachtung der Groß- und Kleinschreibung
Die Beachtung der Groß- und Kleinschreibung bedeutet, dass Groß- und Kleinbuchstaben Namen unterscheiden, sodass eine Änderung der Schreibweise auf einen anderen Namen verweisen kann.
Nach einer Zuweisung an total schlägt print(Total) fehl, sofern dieser eigenständige großgeschriebene Name nicht ebenfalls existiert.
Begrenzungszeichen einer Zeichenkette
Ein Begrenzungszeichen einer Zeichenkette ist ein öffnendes oder schließendes Anführungszeichen, das die Grenze einer Zeichenkette kennzeichnet, ohne Teil ihres Textes zu werden.
Die doppelten äußeren Anführungszeichen in "We're ready" erlauben es, dass der Apostroph innerhalb der Zeichenkette bleibt.
Bezeichner
Ein Bezeichner ist ein im Code verwendeter Name, etwa ein Variablenname, der Pythons Zeichenregeln befolgen muss und kein reserviertes Schlüsselwort sein darf.
Der Bezeichner seat_count2 ist gültig, ein Name, der mit einer Ziffer beginnt oder ein Leerzeichen enthält, jedoch nicht.
boolescher Wert
Ein boolescher Wert gehört zum Datentyp bool und hat einen von zwei Werten, True oder False, die mit großem Anfangsbuchstaben und ohne Anführungszeichen geschrieben werden.
Der Vergleich 4 < 9 erzeugt den booleschen Wert True, während der Text "True" in Anführungszeichen eine Zeichenkette ist.

D

Datentyp
Ein Datentyp bezeichnet, um welche Art von Wert es sich in Python handelt, und bestimmt mit, welche Operationen mit diesem Wert möglich sind.
Der Datentyp von "25" ist str, daher verbindet die Addition einer weiteren Zeichenkette Text, statt Zahlenwerte zu addieren.
Docstring
Ein Docstring ist eine Zeichenkette, die an einer dafür vorgesehenen Stelle im Python-Code als Dokumentation verwendet wird; er unterscheidet sich von einem mit # markierten Kommentar.
Eine Zeichenkette in dreifachen Anführungszeichen am Anfang eines Skripts kann das Programm beschreiben, ohne ein Kommentar zu sein.
dynamische Typisierung
Die dynamische Typisierung erlaubt es einem Namen, im Laufe der Zeit auf Werte verschiedener Datentypen zu verweisen, weil der Datentyp zum jeweiligen Wert und nicht zum Namen gehört.
Python erlaubt entry = 3 gefolgt von entry = "three", obwohl eine gleichbleibende Bedeutung klarer ist.

E

Eingabe
Eine Eingabe sind Daten, die einem Programm übergeben werden; die eingebaute Funktion input() liest eine eingegebene Zeile und gibt ihre Zeichen als Zeichenkette zurück.
Die Eingabe von 45 erzeugt den Text "45", der umgewandelt werden muss, bevor er als ganze Zahl verwendet werden kann.
Eingabe–Verarbeitung–Ausgabe
Eingabe–Verarbeitung–Ausgabe ist eine Programmstruktur, die Daten liest und umwandelt, mit den Werten rechnet und aussagekräftige Ergebnisse anzeigt.
Ein Reiseprogramm kann Meilen und Gallonen einlesen, Meilen pro Gallone berechnen und dann das Ergebnis mit seiner Einheit ausgeben.
Eingabeaufforderung
Eine Eingabeaufforderung ist eine Nachricht, die zur Eingabe von Daten auffordert und im Idealfall die erwartete Art des Werts und eine Maßeinheit angibt.
Die Eingabeaufforderung "Whole minutes: " signalisiert, dass das Programm Text in Form einer ganzen Zahl erwartet, und lässt Platz für die Eingabe.
eingebaute Funktion
Eine eingebaute Funktion ist eine ohne Import verfügbare aufrufbare Operation wie print() oder input(), deren Name durch eine Zuweisung verdeckt werden kann.
Ein Datenname wie item_total hält den eingebauten Namen int für Umwandlungen verfügbar.
erneute Zuweisung
Eine erneute Zuweisung gibt einem bestehenden Namen einen neuen Wert und ersetzt den über diesen Namen erreichbaren Wert, ohne andere Namen zu aktualisieren.
Nach level = 2 und anschließend level = 5 ergibt das Lesen von level fünf statt der früheren zwei.
erweiterte Zuweisung
Eine erweiterte Zuweisung verbindet eine Operation mit einer erneuten Zuweisung und verwendet einen vorhandenen Wert, um seinen Ersatz zu berechnen und zu speichern.
Bei Zahlen addiert score += 6 sechs zum aktuellen Wert und weist die Summe demselben Namen wieder zu.
Escape-Sequenz
Eine Escape-Sequenz beginnt mit einem umgekehrten Schrägstrich und steht für ein Zeichen, etwa einen Zeilenumbruch oder ein Anführungszeichen, das innerhalb einer Zeichenkette bleiben soll.
In "Up\nDown" erzeugt die Escape-Sequenz bei der Ausgabe der Zeichenkette einen Zeilenumbruch zwischen den beiden Wörtern.

F

Fehlersuche und Fehlerbehebung
Fehlersuche und Fehlerbehebung bezeichnet das Finden und Beheben von Fehlern im Code, indem du Meldungen untersuchst, Werte prüfst und erwartete Ergebnisse vergleichst.
Das Lesen der letzten Traceback-Zeile hilft dir zu entscheiden, welche Schreibweise, welchen Wert oder welche Operation du als Nächstes prüfst.

G

ganze Zahl
Eine ganze Zahl ist ein Wert des Datentyps int ohne Bruchteil; ganze Zahlen in Python haben keine feste Begrenzung der Stellenzahl.
Verwende item_count = 24 für eine Anzahl und schreibe große ganzzahlige Literale bei Bedarf mit Unterstrichen.
gleichzeitige Zuweisung
Eine gleichzeitige Zuweisung wertet alle Ausdrücke auf der rechten Seite aus, bevor sie ihre Werte den Namen links anhand ihrer Position zuweist.
In x, y = 4, 8 erhält der erste Name vier und der zweite acht in einer einzigen Anweisung.
Gleitkommazahl
Eine Gleitkommazahl ist eine Zahl mit begrenzter Genauigkeit, die für Größen verwendet wird, die Bruchteile enthalten können, etwa Messwerte.
Das Literal 6.0 ist ein float, obwohl sein Zahlenwert genau der ganzen Zahl sechs entspricht.
Grenzwert
Ein Grenzwert ist eine Eingabe an oder nahe einer Stelle, an der ein Ergebnis seine Form ändert. Er hilft, das Verhalten eines Programms mit dem erwarteten Verhalten zu vergleichen.
Beim Aufteilen von Sekunden in Minuten prüft der Test mit 59, 60 und 61 den Grenzwert der ersten vollen Minute.

I

Inkrement
Ein Inkrement ist eine Erhöhung des Werts einer Variablen, häufig um eins, durch eine Zuweisung, die ihren vorhandenen Wert verwendet.
Nach visits = 4 erfasst die Aktualisierung visits += 1 einen weiteren Besuch und erhöht den Zähler auf fünf.
interaktive Shell
Die interaktive Shell ist eine Umgebung, in der du Python-Anweisungen einzeln eingeben und Ergebnisse von Ausdrücken sofort sehen kannst. Sie heißt auch REPL.
Bei der Eingabeaufforderung >>> zeigt die Shell nach der Eingabe von 14 + 2 den Wert 16 ohne print-Aufruf an.
Interpreter
Ein Interpreter ist ein Programm, das Python-Code liest und seine Anweisungen mit den im Code angegebenen Werten und Operationen ausführt.
In print(6 * 7) wertet der Interpreter 6 * 7 aus und übergibt den resultierenden Wert an den print-Aufruf.

K

Kommentar
Ein Kommentar ist eine Notiz, die mit # außerhalb einer Zeichenkette beginnt und am Zeilenende endet; Python ignoriert sie bei der Ausführung des Programms.
Eine Notiz, die erklärt, dass ein Gebührensatz eine Servicegebühr enthält, hilft beim Verständnis, warum er gewählt wurde.
Kommentar am Zeilenende
Ein Kommentar am Zeilenende steht nach ausführbarem Code in derselben Zeile und ist normalerweise durch mindestens zwei Leerzeichen vom Code getrennt.
In rate = 0.07 # 7% tax wird die Zuweisung ausgeführt und die letzten Wörter erklären die Bedeutung des Satzes.
Konstante
Eine Konstante ist ein Wert, der unverändert bleiben soll und üblicherweise einen Namen in Großbuchstaben erhält, obwohl Python eine erneute Zuweisung erlaubt.
Der Name FEE_RATE zeigt den Lesenden, dass sie diesen Satz beim Nachvollziehen des Programms als fest behandeln sollen.

L

Laufzeitfehler
Ein Laufzeitfehler ist ein Fehler während der Ausführung, der das Programm bei der fehlschlagenden Operation stoppt, nachdem frühere Anweisungen ausgeführt wurden.
Dividiert eine spätere Zeile durch null, bleibt der von einer früheren Zeile ausgegebene Text auf dem Bildschirm sichtbar.
leere Zeichenkette
Die leere Zeichenkette enthält überhaupt keine Zeichen und wird als "" oder '' geschrieben; sie unterscheidet sich von einer Zeichenkette mit einem Leerzeichen.
Die nullfache Wiederholung einer Zeichenkette erzeugt leeren Text, während das Hinzufügen von " " ein Leerzeichen einfügt.
Literal
Ein Literal ist ein Wert, der direkt im Quellcode steht; seine Schreibweise, etwa Anführungszeichen oder ein Dezimalpunkt, bestimmt seinen Datentyp.
Die Literale 12, 12.0 und "12" sind jeweils eine ganze Zahl, eine Gleitkommazahl und eine Zeichenkette.
Logikfehler
Ein Logikfehler lässt Code zwar laufen, liefert aber ein Ergebnis, das nicht der beabsichtigten Berechnung oder dem beabsichtigten Verhalten entspricht.
Eine Summe, die eine Gebühr auslässt, kann falsch sein, ohne dass Python eine Ausnahme oder Warnung ausgibt.

O

Operand
Ein Operand ist ein Wert oder Ausdruck, auf den ein Operator wirkt. Sein Datentyp bestimmt mit, was diese Operation tun kann.
In hours * rate sind die aktuellen Werte von hours und rate die Operanden der Multiplikation.
Operator
Ein Operator ist ein Zeichen oder eine Zeichenkombination, die eine Operation auf Operanden ausführt, etwa + für eine Addition oder ** für eine Potenzierung.
Die Änderung von 6 * 2 zu 6 ** 2 ändert die Operation von einer Multiplikation zu einer Potenzierung.

P

Parität
Die Parität beschreibt, ob eine ganze Zahl gerade oder ungerade ist. Das lässt sich anhand ihres Rests bei Division durch zwei bestimmen.
Das Ergebnis von -5 % 2 ist eins. Das zeigt, dass minus fünf nach derselben Restregel ungerade ist.
Potenzierung
Die Potenzierung erhebt eine Basis mit ** in eine Potenz; bei ganzzahligen Operanden und einem nicht negativen Exponenten ist das Ergebnis eine ganze Zahl.
Der Ausdruck 4 ** 3 multipliziert drei Vieren miteinander und ergibt die ganze Zahl 64.
Programm
Ein Programm ist eine Folge von Anweisungen, die einem Computer vorgibt, was er tun soll, etwa einen Wert berechnen und das Ergebnis anzeigen.
Ein kurzes Programm kann die Kosten mehrerer Gegenstände berechnen und dann die Summe mit einer Beschriftung ausgeben.
Programmfehler
Ein Programmfehler ist ein Fehler in einem Programm, der das beabsichtigte Verhalten verhindert, unabhängig davon, ob er eine Fehlermeldung oder ein falsches Ergebnis verursacht.
Ein fehlendes Klammerpaar bei der Berechnung eines arithmetischen Mittels kann ein Programmfehler sein, selbst wenn der Code läuft.

Q

Quotient
Ein Quotient ist das Ergebnis einer Division; die abrundende Division wählt die größte ganze Zahl, die nicht größer als der exakte Quotient ist.
Bei 22 // 5 ist der abgerundete Quotient vier und der zugehörige Rest zwei.

R

Rest
Ein Rest ist der Wert von %, der eine Division ergänzt; bei ganzen Zahlen und einem positiven Divisor ist er nicht negativ und kleiner als der Divisor.
Bei 43 Elementen in Gruppen zu je 8 ergibt 43 % 8 die 3 Elemente, die nach fünf vollständigen Gruppen übrig bleiben.
runde Klammern
Runde Klammern sind Gruppierungszeichen, die einen eingeschlossenen Ausdruck zu einem Teil einer größeren Berechnung machen oder Funktionsargumente einschließen.
In (10 + 6) / 4 sorgen die Klammern dafür, dass die ganze Summe durch vier dividiert wird und 4.0 ergibt.
Rundung
Eine Rundung wählt einen nächstgelegenen Wert mit einer gewählten Genauigkeit; Pythons round() wählt bei Werten genau in der Mitte den geraden Nachbarwert.
Der Aufruf round(6.5) ergibt sechs, während round(7.5) acht ergibt, weil beide gewählten Nachbarwerte gerade sind.

S

Schlüsselwort
Ein Schlüsselwort ist ein für Pythons Grammatik reserviertes Wort und kann daher in einer Zuweisung nicht als gewöhnlicher Variablenname verwendet werden.
Die Verwendung von class als Ziel einer Zuweisung verursacht einen Syntaxfehler, bevor das Skript ausgeführt werden kann.
Skript
Ein Skript ist eine reine Textdatei mit Python-Anweisungen, die gespeichert, bearbeitet und gemeinsam in ihrer geschriebenen Reihenfolge ausgeführt werden können.
Wenn du Anweisungen als Skript speicherst, kannst du dieselbe Berechnung nach einer Änderung eines Eingabewerts erneut ausführen.
snake_case
Snake_case ist ein Namensstil, der kleingeschriebene Wörter mit Unterstrichen verbindet und so Variablennamen aus mehreren Wörtern gültig und lesbar macht.
Der Name total_seconds folgt snake_case und bezeichnet die Einheit, die bei einer Zeitberechnung verwendet wird.
Syntaxfehler
Ein Syntaxfehler ist ein Verstoß gegen Pythons Grammatik, der den Start eines gespeicherten Skripts verhindert, etwa eine fehlende schließende Klammer.
Ein nicht geschlossenes Anführungszeichen nahe dem Ende eines Skripts kann sogar die Ausführung der ersten print-Anweisung verhindern.

T

temporäre Variable
Eine temporäre Variable hält einen Wert, der während einer kurzen Folge von Schritten benötigt wird, etwa um einen ursprünglichen Wert beim Tausch zweier anderer Werte zu bewahren.
Bei einem aufeinanderfolgenden Tausch erhält temp = left den alten linken Wert, bevor left überschrieben wird.
Traceback
Ein Traceback ist ein Fehlerbericht, der zeigt, wo die Ausführung fehlgeschlagen ist, gefolgt vom Ausnahmetyp und einer Meldung, die den Fehler beschreibt.
Lies zuerst die letzte Fehlerzeile und untersuche dann den gemeldeten Code und die Stelle direkt darüber.
Trennzeichen
Ein Trennzeichen ist der Text, den print() zwischen angezeigte Argumente einfügt. Es wird durch das benannte Argument sep gesteuert und ist standardmäßig ein Leerzeichen.
Der Aufruf print("A", "B", sep="-") verwendet einen Bindestrich als Trennzeichen und zeigt A-B in der Ausgabezeile.
type()
Die Funktion type() gibt den Datentyp ihres Arguments an, sodass du einen gespeicherten Wert oder das Ergebnis eines Ausdrucks untersuchen kannst.
Die Ausgabe von type("12") zeigt eine Zeichenkette an, obwohl die angezeigten Zeichen wie eine Zahl aussehen.
TypeError
Ein TypeError ist eine Ausnahme, die ausgelöst wird, wenn eine Operation oder ein Aufruf einen nicht kompatiblen Datentyp erhält, etwa wenn eine Zeichenkette mit einer ganzen Zahl verknüpft wird.
Der Ausdruck "Count: " + 7 schlägt fehl, weil die Verkettung auf beiden Seiten von + Text benötigt.
Typumwandlung
Eine Typumwandlung erzeugt einen neuen Wert des gewünschten Datentyps, etwa eine ganze Zahl aus Zahlentext, ohne den ursprünglichen Wert selbst zu ändern.
Speichere int(text) in einer Variablen, wenn eine spätere Berechnung den umgewandelten Wert statt des Textes benötigt.

U

unäres Minus
Das unäre Minus ist ein Operator, der das Vorzeichen eines Werts umkehrt, anders als die Subtraktion, die zwei Operanden zu einer Differenz verbindet.
In 10 - -2 macht das zweite Minus die zwei zu minus zwei, sodass deren Subtraktion den Wert 12 ergibt.

V

ValueError
Ein ValueError ist eine Ausnahme, die ausgelöst wird, wenn eine Operation einen Wert eines akzeptierten Datentyps erhält, dessen Inhalt nicht wie gewünscht verwendet werden kann.
Die Zeichenkette "ten" ist Text, aber int("ten") schlägt fehl, weil dieser Text keine ganze Zahl beschreibt.
Variable
Eine Variable ist ein Name, der auf einen gespeicherten Wert verweist und es einem Programm ermöglicht, diesen Wert in späteren Anweisungen zu verwenden oder zu ersetzen.
Nach length = 6 liest der Ausdruck length * 2 den aktuellen Wert über den Namen length.
Verkettung
Die Verkettung hängt Zeichenketten mit + aneinander, erhält ihre Zeichenreihenfolge und fügt keine zusätzlichen Leerzeichen oder Satzzeichen ein.
Die Verknüpfung von "Room " und "12" erhält das bereits in der ersten Zeichenkette enthaltene Leerzeichen und ergibt "Room 12".
Vorrang
Der Vorrang ist die Rangfolge, die entscheidet, welche Operatoren zuerst angewendet werden, wenn ein Ausdruck mehrere Arten von Operatoren enthält.
In 4 + 3 * 5 hat die Multiplikation Vorrang vor der Addition, daher ist das Ergebnis neunzehn.

W

Wert
Ein Wert ist ein Datum, mit dem Python arbeitet, etwa eine Zahl, Text oder ein boolesches Ergebnis; jeder Wert hat einen Datentyp.
Die Werte 25 und "25" sehen bei der Ausgabe ähnlich aus, unterstützen aber unterschiedliche Operationen in einem Programm.
Wiederholung einer Zeichenkette
Die Wiederholung einer Zeichenkette verwendet * mit einer Zeichenkette und einer ganzzahligen Anzahl, um die gewünschte Anzahl direkt aneinandergehängter Kopien zu erzeugen.
Der Ausdruck "ab" * 3 erzeugt "ababab"; zwischen den wiederholten Kopien wird kein Leerzeichen eingefügt.
wissenschaftliche Schreibweise
Die wissenschaftliche Schreibweise stellt eine Gleitkommazahl mit e und einer Zehnerpotenz dar und macht sehr große oder sehr kleine Zahlenwerte kompakt.
Das Literal 8e-3 bedeutet acht dividiert durch eintausend und stellt den float 0.008 dar.

Z

Zeichenkette
Eine Zeichenkette ist eine Folge von Zeichen des Datentyps str und enthält Text wie Buchstaben, Ziffern, Leerzeichen, Satzzeichen und Symbole.
Der Wert "Bus 09" erhält seine Buchstaben, das Leerzeichen und den Identifikator mit führender null als einen Textwert.
Zeilenabschluss
Ein Zeilenabschluss ist der Text, der nach dem letzten Argument eines print-Aufrufs ausgegeben wird. Er wird durch end gesteuert und ist standardmäßig ein Zeilenumbruch.
Mit end="" werden keine abschließenden Zeichen ausgegeben, sodass der nächste print-Aufruf in derselben Zeile fortfährt.
Zuweisung
Eine Zuweisung wertet einen Ausdruck aus und lässt einen Zielnamen auf den resultierenden Wert verweisen. Sie verwendet = mit dem Namen auf der linken Seite.
In area = width * height wird die Multiplikation ausgewertet, bevor ihr Ergebnis unter area gespeichert wird.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten