Beruflich Dokumente
Kultur Dokumente
1
b) Re-Implementieren Sie in einem Ausdruck den Operator //, der in Python eine Ganzzahldivision dividend
//divisor durchführt. Greifen Sie dafür jedoch auf andere Operatoren von Python zurück, insbesondere /
(Division) und % (Modulo) sowie falls notwendig Subtraktion und Addition. Testen Sie Ihre Implementierung
in Python.
dividend = 111
divisor = 23
# Kantenwerte einlesen
a = int(input("Geben Sie Seitenlänge a an:"))
# ... sicherstellen dass a nicht negativ
s = #... s berechnen
area = #... Fläche berechnen
2
2 Übungen zur Stringformatierung
In Python wie auch in vielen anderen Programmiersprachen ist Stringformatierung eine in der Praxis sehr häufig
eingesetzte Funktionalität zur Darstellung von Werten unterschiedlichen Typs in einem gewünschten Format.
Komplizierte Vorverarbeitung (z.B. Umrechnung von Integer-Darstellungen) können so vermieden werden.
Als Hilfestellung können Sie die Python-Dokumentation heranziehen:
https://docs.python.org/3/library/string.html
a) Gegeben sei ein Dezimalzahl-Wert 15910 . Geben Sie durch Stringformatierung den Wert in folgenden Varian-
ten als String zurück (mittels der Funktion format(), die auf einem String-Objekt aufgerufen werden kann)
und schreiben sie ihn auf die Konsole aus. Die erste Aufgabe stellt ein Beispiel dar.
• Der Wert als Hexadezimalzahl, aufgefüllt mit führenden Nullen zu acht Zeichen.
• Der Wert als Float mit drei Nachkommastellen und fünf Vorkommastellen.
• Den Wert als Integer-Dezimalzahl mit Vorzeichen und einem Padding auf 9 Zeichen zwischen
Vorzeichen und Wert.
b) Gegeben ist der String "Python" und die Dezimalzahl 3. Nehmen Sie die folgenden Stringformatierungen
vor.
• Konkatenation der beiden Werte in der gegebenen Reihenfolge.
• Konkatenation mit Padding auf 15 Zeichen, zentral ausgerichtet. (Benötigt zwei format-Aufrufe)
• Den String "Python" links ausgerichtet mit einem Padding auf 10 Zeichen und nachfolgender De-
zimalzahl 3.
3
3 Einfache Funktionen
In dieser Aufgabe sollen Sie den Umgang mit einfachen Funktionen in Python kennenlernen und üben.
a) In dieser Aufgabe wird bei jedem Start des Programms eine zufällige Zahl number zwischen 1 und 100 gene-
riert (nutzen Sie dazu die Methode randint(1,100)). Implementieren Sie die Funktion correct_guess
(secret), dessen Funktionskopf bereits vorgegeben ist und solange aufgerufen wird, bis die richtige Zahl
secret erraten wurde. Wenn die erratene Zahl, die über die Funktion safe_input eingelesen wird, klei-
ner oder größer als secret ist, geben Sie einen entsprechenden Hinweis auf der Konsole aus und lassen Sie
correct_guess den Wert False zurückgeben. Ist die geratene Zahl gleich groß wie secret, dann geben
Sie ebenfalls einen Hinweis auf der Konsole aus und geben in der Funktion True zurück. Es sollen X Runden
gespielt werden, wobei X initial vom Nutzer abgefragt wird. Geben Sie auch am Anfang einer neuen Runde
die jeweilige Rundennummer aus!
def safe_input():
try:
return int(input())
except:
print("Das ist keine richtige Zahl!\n")
return safe_input()
4
4 Zahlenraten
Aus der Vorlesung in Kapitel 3 kennen Sie bereits das folgende Spiel zum Zahlenraten mittels while-Schleife:
from random import randint
while True:
geraten = int(input("Dein Tipp: "))
if geraten > gedacht:
print("Nein, ist kleiner!")
elif geraten < gedacht:
print("Nein, ist größer!")
else:
break
print("Genau!")
a) Fügen Sie eine Zählvariable ein, die zählt, wie häufig der Spieler raten musste, bis er die richtige Zahl erraten
hat. Geben Sie diese Zahl aus, wenn die Zahl richtig erraten wurde.
b) Modifizieren Sie Ihren Code jetzt so, dass der Spieler beim Raten nur eine begrenzte Anzahl an Versuchen hat
(z. B. 5). Verwenden Sie hierzu das while-else-Konstrukt.
c) Bauen Sie nun noch eine Überprüfung in Ihren Code ein, der checked ob zweimal hintereinander die selbe
Zahl geraten wurde. In diesem Fall soll der Versuch nicht als Zug zählen. (Sie können also unendlich oft die
gleiche Zahl raten.)
5
5 Approximation von π
Zur näherungsweisen Berechnung des Wertes von π gibt es viele verschiedene Verfahren. Eine Methode verwendet
die Leibniz-Reihe1 zur Annäherung. Je länger die Reihe berechnet wird, desto genauer ist die Approximation von
π:
4 4 4 4 4 4
π≈ − + − + − ... (1)
1 3 5 7 9 11
a) Formulieren Sie die Reihe als for-Schleife, die ausgehend von dem Startwert 4 jeweils abwechselnd den
nächsten Bruch subtrahiert und addiert. Verwenden Sie fürs erste den Bereich range(0, 200) für Ihre
Schleife und geben Sie nach erfolgreichem Durchlaufen der Schleife das Ergebnis per print()-Aufruf aus.
b) Fügen Sie Ihren Code in eine Funktion calc_pi ein. Die Funktion soll einen Parameter haben, der die obere
Schranke für die Anzahl der Schleifendurchläufe angibt. Geben Sie bei jedem Schleifendurchlauf den aktuellen
Wert des Zählers, den aktuellen Wert für π und den aktuellen Wert des Bruchs aus.
c) Kopieren Sie Ihre Funktion und tauschen Sie die for-Schleife gegen eine while-Schleife. Die Schleife soll
so lange durchlaufen werden, bis die Differenz zwischen der angenäherten Zahl und math.pi kleiner ist, als
der als Parameter übergebene Wert. Wenn Sie π hinreichend genau approximiert haben, geben Sie die Anzahl
der notwendigen Schleifendurchläufe zurück.
Um math.pi verwenden zu können, müssen Sie zunächst das math-Paket importieren. Fügen Sie dazu am
Anfang Ihrer Datei import math ein.
1 https://de.wikipedia.org/wiki/Leibniz-Reihe