Vorschau auf das nächste Semester, noch nicht veröffentlicht.
Zur aktuellen Seite

Warm-ups (freiwillig)

Sie müssen nicht alle Warm-ups machen. Suchen Sie sich in der Tabelle das heraus, was Ihnen für eine Aufgabe fehlt:

ÜbtHilft bei
Warm-up 1Ein- und Ausgabe in Pythonallen drei Aufgaben
Warm-up 2Zahlen einlesen: Bargeld in PythonVeraltet, Keksdose

Legen Sie für die Warm-ups eine eigene Datei an, zum Beispiel warmup_aufgaben_6.py, im selben Ordner wie Ihre Übungsaufgaben. Lösungen gibt es für die Warm-ups nicht. Unter „Wo zu finden?“ steht jeweils, wo das Thema in Vorlesung und Shorts vorkommt. Mehr dazu im FAQ zu den Warm-ups.

Als Gerüst können Sie dieses Snippet in Ihre Datei kopieren:

from cs50 import get_string

if __name__ == "__main__":
    # Hierhin schreiben Sie Ihren Code

from cs50 import get_string macht die Funktion get_string aus der CS50-Bibliothek verfügbar. Was die Zeile if __name__ == "__main__": bewirkt, erklärt das Short zu Kontrollfluss, Funktionen und Strings.

Die Warm-ups kommen Ihnen bekannt vor: Dieselben Programme haben Sie in Übung 1 schon in C geschrieben.

Warm-up 1: Ein- und Ausgabe in Python

Erinnern Sie sich noch an die Hello, It’s Me Aufgabe von Übungsblatt 1?

In dieser Aufgabe implementieren wir dieses Programm in Python. Wie auch in dem C-Programm aus Übungsblatt 1 wird der Benutzer nach seinem Namen gefragt und dann Hallo Name ausgegeben. Wenn der Name des Benutzers zum Beispiel Adele ist, sollte Ihr Programm Hallo, Adele ausgeben. In Python müssen Sie keinen \n am Ende einer Zeile hinzufügen, da die print-Funktion automatisch einen Zeilenumbruch erzeugt.

Nutzen Sie dazu die get_string-Funktion der cs50-Bibliothek. Mit dieser Funktion können Sie einen str von einem Benutzer abfragen. Nutzen Sie anschließend print, um einen str auszugeben.

Denken Sie daran, dass Sie formatierte Zeichenfolgen in Python erstellen können, indem Sie einer Zeichenfolge f voranstellen. Beispielsweise setzt (“interpoliert") f"{name}" den Wert der Variable name dort ein, wo Sie {name} geschrieben haben.

Schritt für Schritt

Öffnen Sie VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → entsprechend Ihrem Setup.

Führen Sie cdWechselt das Verzeichnis: cd me geht in den Ordner me, cd .. eine Ebene nach oben, cd allein ins Homeverzeichnis. Glossar → in Ihrem Terminalfenster aus. Die EingabeaufforderungDas Zeichen am Anfang der Zeile im Terminal, etwa $ oder me/ $. Es zeigt, dass das Terminal auf Ihren nächsten Befehl wartet. Steht davor ein Ordnername wie me/, befinden Sie sich gerade in diesem Ordner. Glossar → Ihres Terminalfensters sollte wie folgt aussehen:

$

Sie können nun Folgendes ausführen:

code warmup_aufgaben_6.py

um eine Datei namens warmup_aufgaben_6.py zu erstellen, in die Sie Ihren Code schreiben können. Achten Sie darauf, dass diese Datei mit .py endet und nicht mehr mit .c.

Ausführen des Python-Programms

Wenn Sie mit dem Programm fertig sind, können Sie es mit folgendem Befehl ausführen:

python warmup_aufgaben_6.py
Wo zu finden?
Sollten Sie noch Verständnisprobleme haben, was bei einer solchen Aufgabenstellung generell zu tun ist, kann es hilfreich sein Übungsblatt 1 zu wiederholen. Bei Problemen und Unklarheiten bezüglich der Python Syntax, schauen Sie sich am besten die Notizen aus der Vorlesung an.

Warm-up 2: Zahlen einlesen: Bargeld in Python

Mit der get_string-Funktion der cs50-Bibliothek kann man also einen str vom Benutzer abfragen. Nun wollen wir aber einen float erhalten. Das ist mit der get_float-Funktion, welche ebenfalls aus der cs50-Bibliothek stammt, möglich. Im Folgenden wollen wir diese Funktion nutzen. Wir orientieren uns hierfür wieder an einer C-Aufgabe von Übungsblatt 1.

Erinnern Sie sich noch an die Bargeld Aufgabe von Übungsblatt 1? Schauen Sie sich Ihren Code zu dieser Aufgabe am besten nochmal an, bevor Sie fortfahren.

Implementieren Sie nun ein Python-Programm, das den Benutzer fragt, wie viel Wechselgeld er hat, und dann die Mindestmenge an Münzen ausgibt, mit denen das Wechselgeld herausgegeben werden kann. Sie können genauso vorgehen wie in Übungsblatt 1, außer dass Ihr Programm diesmal in Python geschrieben sein soll. Gehen Sie davon aus, dass der Benutzer sein Wechselgeld in Dollar einwirft (z.B. 0.50 Dollar statt 50 Cent).

Gehen Sie dafür wie folgt vor:

  1. Eingabe mit get_float:
    • Verwenden Sie die Funktion get_float aus der cs50-Bibliothek, um die Eingabe des Benutzers zu erhalten.
    • Die Eingabe soll einen Betrag in Dollar und Cent repräsentieren. Dabei:
      • Muss das Dollarzeichen ($) nicht eingegeben werden.
      • Beispiele für gültige Eingaben:
        • 9.75 für 9 Dollar und 75 Cent
        • 9 oder 9.00 für genau 9 Dollar
      • Ungültige Eingaben, wie $9.75 oder 975$ sollen vermieden werden.
  2. Verarbeitung der Eingabe:
    • Ihr Programm sollte sicherstellen, dass der Benutzer einen positiven Betrag eingibt:
    • Falls der Benutzer einen negativen oder ungültigen Wert eingibt, soll er wiederholt zur Eingabe eines gültigen Betrags aufgefordert werden.
  3. Verwendung von Münzen:
    • Nehmen Sie an, dass folgende Münzen zur Verfügung stehen:
      • Vierteldollarmünzen (25 ¢)
      • Zehncentstücke (10 ¢)
      • Fünfcentstücke (5 ¢)
      • Eincentstücke (1 ¢)
    • Ihr Programm soll den eingegebenen Betrag so aufteilen, dass die geringstmögliche Anzahl an Münzen verwendet wird.
Testen

Führen Sie Ihr Programm mit python cash.py aus und warten Sie auf eine Eingabeaufforderung. Geben Sie nun die folgenden Eingaben ein und prüfen Sie, wie sich Ihr Programm verhält:

  • Test 1
    • Eingabe: 0.41
    • Erwartetes Verhalten: 4
  • Test 2
    • Eingabe: 0.01
    • Erwartetes Verhalten: 1
  • Test 3
    • Eingabe: 0.15
    • Erwartetes Verhalten: 2
  • Test 4
    • Eingabe: 1.60
    • Erwartetes Verhalten: 7
  • Test 5
    • Eingabe: 23
    • Erwartetes Verhalten: 92
  • Test 6
    • Eingabe: 4.2
    • Erwartetes Verhalten: 18
  • Test 7
    • Eingabe: -1
    • Erwartetes Verhalten: Die Eingabe sollte als ungültig abgelehnt werden, und das Programm sollte den Benutzer auffordern, eine andere Nummer einzugeben.
  • Test 8
    • Eingabe: foo
    • Erwartetes Verhalten: Die Eingabe sollte als ungültig abgelehnt werden, und das Programm sollte den Benutzer auffordern, eine andere Nummer einzugeben.
  • Test 9
    • Eingabe: nichts (nur Drücken der Eingabetaste)
    • Erwartetes Verhalten: Die Eingabe sollte als ungültig abgelehnt werden, und das Programm sollte den Benutzer auffordern, eine andere Nummer einzugeben.
Wo zu finden?
Sollten Sie noch Verständnisprobleme haben, was bei einer solchen Aufgabenstellung generell zu tun ist, kann es hilfreich sein Übungsblatt 1 zu wiederholen. Bei Problemen und Unklarheiten bezüglich der Python Syntax, schauen Sie sich am besten die Notizen aus der Vorlesung an.