text = "This is" " an example."
text'This is an example.'
Elektrische Widerstände können in Serie oder parallel geschaltet werden. In einer Serienschaltung addieren sich die Widerstände, während in einer Parallelschaltung der Kehrwert der Gesamtwiderstandes gleich der Summe der Kehrwerte der Einzelwiderstände ist. In Formeln kann dies wie folgt ausgedrückt werden:
Schreiben Sie zwei Funktionen serial und parallel, welche die jeweiligen Gesamtwiderstände zurückgeben. Beide Funktionen sollen jeweils zwei Parameter r1 und r2 haben, welche die beiden zu kombinierenden Widerstände darstellen.
Testen Sie beide Funktionen mit den Widerständen \(R_1 = 10\,\Omega\) und \(R_2 = 20\,\Omega\). Die Gesamtwiderstände sollten \(30\,\Omega\) (Serienschaltung) und \(6.67\,\Omega\) (Parallelschaltung) betragen.
Berechnen Sie außerdem den Gesamtwiderstand von \((R_1 + R_2) \parallel R_3\) mit den Werten \(R_1 = 10\,\Omega\), \(R_2 = 20\,\Omega\) und \(R_3 = 50\,\Omega\) mit einem Ausdruck (unter Verwendung der beiden Funktionen)!
Schreiben Sie ein Programm, welches die Benutzer auffordert, eine Zahl zwischen 1 und 12 einzugeben (entsprechend den Monaten). Das Programm soll dann den Namen des Monats ausgeben. Falls die eingegebene Zahl nicht im Bereich 1 bis 12 liegt, soll eine Fehlermeldung ausgegeben werden. Die Eingabe soll so lange wiederholt werden, bis eine gültige Zahl eingegeben wird.
Zur Bestimmung des Monatsnamens definieren Sie eine Funktion month_name, welche die Nummer des Monats als Argument erhält und den Namen des Monats zurückgibt.
Sie können davon ausgehen, dass die Benutzer nur ganze Zahlen eingeben.
Schreiben Sie eine Funktion count_words, welche die Anzahl der Wörter in einem Text zählt. Die Funktion soll zwei Parameter haben: text (der Text, in dem die Wörter gezählt werden sollen) und sep (das Trennzeichen, Standardwert ist ein Leerzeichen). Verwenden Sie dafür die String-Methode split, welche eine Liste von Strings zurückgibt; die Länge dieser Liste kann mit der Funktion len ermittelt werden.
Testen Sie die Funktion mit folgendem Text:
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas.
Für diese Funktion reicht uns eine einfache Definition von Wörtern, die durch Leerzeichen getrennt sind. In der Praxis ist die Definition von Wörtern komplexer, da auch Satzzeichen und andere Zeichen berücksichtigt werden müssten.
Definiert man den gegebenen Text als normalen String, entsteht eine sehr lange Zeile. Das ist in Python zwar erlaubt, aber aus stilistischen Gründen sollten Zeilen nicht länger als 88 Zeichen sein. Da Ruff dies derzeit nicht automatisch korrigiert, müssen Zeilenumbrüche manuell eingefügt werden. Wichtig ist dabei, dass Python benachbarte Strings automatisch zu einem einzigen String zusammenfügt:
text = "This is" " an example."
text'This is an example.'
Diese Eigenschaft lässt sich nutzen, um lange Strings über mehrere Zeilen zu verteilen. Voraussetzung ist, dass die einzelnen Strings in Klammern stehen:
text = (
"This is"
" an example."
)
text'This is an example.'
Schreiben Sie eine Funktion factorial, welche die Fakultät \(n!\) einer positiven Zahl \(n\) berechnet. Die Fakultät \(n!\) einer Zahl \(n\) ist das Produkt aller positiven ganzen Zahlen kleiner oder gleich \(n\). Die Fakultät von 0 ist mit 1 definiert. Berechnen Sie abschließend \(5!\).
Schreiben Sie eine Funktion is_divisible, welche überprüft, ob eine Zahl \(n\) durch eine andere Zahl \(m\) ohne Rest teilbar ist. Die Funktion soll zwei Parameter haben: n (die zu überprüfende Zahl) und m (die Zahl, durch die geteilt werden soll). Die Funktion soll True zurückgeben, wenn die Division ohne Rest möglich ist, andernfalls False.
Testen Sie die Funktion mit den Zahlenpaaren (10, 2), (10, 3), (10, 5) und (10, 7).
Was ist das Problem im folgenden Beispiel? Korrigieren Sie den Code so, dass er funktioniert.
x = 10
if x > 0:
print("x is positive.")
else:
print("x is zero.")
elif x < 0:
print("x is negative.")Erstellen Sie eine Liste numbers, welche die Wurzeln der Zahlen 0, 10, 20, … , 990, 1000 beinhaltet. Verwenden Sie dazu eine List Comprehension.
Bestimmen Sie dann mit einer geeigneten Python-Funktion die Anzahl und die Summe der Elemente der so entstandenen Liste.
Erklären Sie, warum folgender Code nicht funktioniert:
for x in range(10)
print(x)Geben Sie den korrekten Code an!
Berechnen Sie mit Python das Ergebnis des folgenden mathematischen Ausdruckes und weisen Sie es dem Namen result zu:
\[\frac{17 \cdot (\sqrt{5} + \frac{2}{3})}{27.7 - 3^\pi} + 42^{\frac{2}{7}}\]
Geben Sie mit Hilfe der print-Funktion das Ergebnis auf zwei Nachkommastellen gerundet aus (es sollte ca. \(-9.93\) lauten).
Erklären Sie, warum folgender Code nicht funktioniert:
alpha = 5
lambda = 7
print(alpha + lambda)Geben Sie auch den korrekten Code an!
Die Standardabweichung \(s\) von \(N\) Werten \(x_i\) kann mit folgender Formel berechnet werden:
\[s = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N}(x_i - \bar{x})^2}\]
Dabei ist \(\bar{x}\) der arithmetische Mittelwert der Werte:
\[\bar{x} = \frac{1}{N} \sum_{i=1}^{N} x_i\]
Schreiben Sie eine Funktion namens std, welche eine Liste an Zahlen als Argument entgegennimmt und deren Standardabweichung zurückgibt. Verwenden Sie in Ihrer Lösung nicht das Modul statistics, sondern berechnen Sie die Kenngrößen selbst (z.B. mittels List Comprehensions)!
Testen Sie Ihre Funktion mit der Liste [10, 12, 23, 23, 16, 23, 21, 16]. Die Standardabweichung sollte ca. 5.237 betragen.
Schreiben Sie eine Funktion get_even, welche eine Liste an Zahlen als Argument entgegennimmt und eine neue Liste, welche nur die geraden Zahlen der ursprünglichen Liste beinhaltet, zurückgibt.
Der Aufruf get_even([1, 45, -4, -5, 17, 2]) gibt also die Liste [-4, 2] zurück.
Schreiben Sie eine Funktion fizzbuzz, welche eine Zahl als Argument entgegennimmt. Wenn die Zahl sowohl durch 3 als auch durch 5 teilbar ist, soll die Funktion den String Fizzbuzz zurückgeben. Wenn die Zahl nur durch 3 teilbar ist, soll die Funktion Fizz zurückgeben. Wenn die Zahl nur durch 5 teilbar ist, soll die Funktion Buzz zurückgeben. Für alle anderen Zahlen soll die Zahl selbst als String zurückgegeben werden.
Rufen Sie die Funktion dann in einer Schleife mit den Zahlen von 1 bis 15 auf und geben Sie die zurückgegebenen Werte mit print am Bildschirm aus!
Die ausgegebenen Werte sollten lauten: 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizzbuzz.
Der Rest-Operator % kann die Teilbarkeit einer Zahl überprüfen. Eine Zahl ist durch 3 teilbar, wenn der Rest der Division durch 3 Null ergibt. Eine Zahl ist sowohl durch 3 als auch durch 5 teilbar, wenn der Rest der Division durch 15 Null ergibt.
Schreiben Sie eine Funktion add, welche zwei Zahlen addiert und deren Summe zurückgibt. Die Funktion soll also mit zwei Argumenten aufgerufen werden können, wobei aber das zweite Argument optional sein soll. Wenn nur ein Argument übergeben wird, soll die Funktion 1 zu diesem Wert addieren und zurückgeben.
Gegeben sei folgender Funktionskopf:
def test(x, y=1, z=5):Erklären Sie, warum folgende drei Aufrufe nicht funktionieren:
test(y=2, z=2)test(4, y=2, x=2)test()Schreiben Sie eine Funktion is_even, welche überprüft, ob das übergebene Argument gerade ist. Falls dies der Fall ist, soll die Funktion True zurückgeben, sonst False. Testen Sie Ihre Funktion, indem Sie sie mit mindestens zwei verschiedenen Argumenten (eine gerade Zahl und eine ungerade Zahl) aufrufen!
Schreiben Sie eine Funktion sign, welche das Vorzeichen einer Zahl bestimmt. Die Funktion soll in Abhängigkeit der übergebenen Zahl folgende Werte zurückgeben:
1 zurückgegeben werden.-1 zurückgegeben werden.0 zurückgegeben werden.Gegeben ist der String x = "Pythonista". Schreiben Sie eine for-Schleife, welche über den String iteriert und jedes Zeichen dieses Strings in einer neuen Zeile ausgibt.
Gegeben ist die Liste y = ["This", "is", "a", "sample", "list"]. Erzeugen Sie mit einer List Comprehension aus dieser Liste eine neue Liste z, welche alle Elemente von y in Großbuchstaben beinhaltet.
Gegeben ist der String s = "Donaudampfschifffahrtsgesellschaft". Verwenden Sie geeignete Funktionen oder String-Methoden um folgende Fragen zu beantworten:
s?f das erste mal auf?e kommen in dem String vor?Gegeben ist eine Liste x = [-13, 22, -2, -14, 33, -16]. Erzeugen Sie mit einer List Comprehension eine neue Liste y, welche die Absolutwerte der Zahlen in x enthält.
Die eingebaute Funktion abs liefert den Absolutwert einer Zahl zurück.
Erzeugen Sie ein NumPy-Array x mit 15 Zeilen und 5 Spalten, welches ganzzahlige Zufallszahlen im Bereich 0 bis 100 (inklusive) beinhalten soll. Initialisieren Sie den Zufallszahlengenerator mit dem Wert 1. Berechnen Sie abschließend die fünf Spaltenmittelwerte von x.
Erzeugen Sie ein NumPy-Array x mit 1000 Zahlen im gleichmäßigen Abstand von 10 bis 13 (inklusive).
Gegeben ist ein NumPy-Array x, welches durch folgenden Code erzeugt werden kann:
from numpy.random import default_rng
rng = default_rng(2)
x = 10 + 2 * rng.standard_normal(10000)Erzeugen Sie mit Matplotlib ein Histogram mit 50 Bins von x.
Gegeben ist ein NumPy-Array x, welches durch folgenden Code erzeugt werden kann:
from numpy.random import default_rng
rng = default_rng(2)
x = 10 + 2 * rng.standard_normal(10000)Stellen Sie mit Matplotlib die ersten 100 Werte von x als Balkengrafik dar.
Die Datei shakespeare.txt beinhaltet die gesammelten Werke von William Shakespeare. Bestimmen Sie mit Python, wie viele Zeilen diese Datei enthält. Finden Sie außerdem heraus, in welcher Zeile der Text “Go antickly, show outward hideousness,” vorkommt!
Der gesuchte Text kann auch Leerzeichen am Anfang oder Ende der Zeile enthalten. Verwenden Sie zur Suche daher entweder den in-Operator oder die String-Methode strip, um führende und nachfolgende Leerzeichen zu entfernen.
Berechnen Sie die Summe aller natürlichen Zahlen von 0 bis 1000 (inklusive), die durch 3 oder 5 aber nicht durch 3 und 5 teilbar sind.
Eine Zahl ist durch 3 teilbar, wenn der Rest der Division durch 3 gleich Null ist. Eine Zahl ist durch 3 und 5 teilbar, wenn der Rest der Division durch 15 gleich Null ist.
Verwenden Sie and bzw. or, um die Bedingungen zu verknüpfen und achten Sie auf die korrekte Klammersetzung.
Gegeben ist der String x = "Pythonista". Schreiben Sie eine for-Schleife, welche über den String iteriert und jedes Zeichen dieses Strings als Großbuchstaben getrennt durch Bindestriche ausgibt. Die gewünschte Ausgabe sollte also wie folgt aussehen:
P-Y-T-H-O-N-I-S-T-A-
Definieren Sie zwei Funktionen kmh_to_mph bzw. mph_to_kmh, welche Geschwindigkeiten von Kilometer pro Stunde in Meilen pro Stunde bzw. umgekehrt umwandeln und zurückgeben. Die Umrechnungsvorschriften lauten:
\[\mathrm{mph} = \frac{\mathrm{kmh}}{\mathrm{1.609}} \hspace{35pt} \mathrm{kmh} = 1.609 \cdot \mathrm{mph}\]
Testen Sie die Funktionen dann mit folgendem Befehl:
kmh_to_mph(mph_to_kmh(65))Angenommen Sie möchten zu einer bestehenden Liste x ein Element am Ende hinzufügen. Was stimmt nicht im folgenden Code:
x = [1, 2, 3, 4]
x = x.append(5)Erklären Sie was hier passiert und geben Sie auch die korrekte Variante an!
Wie können Sie folgenden Text dem Namen s zuweisen:
Er sagte: “Sicher!”
Geben Sie in Ihrer Antwort die korrekte Zuweisung an!
Gegeben sei folgender String:
x = "abcdefghijklmnopqrstuvwxyz"Wie können Sie durch indizieren/slicen jedes zweite Zeichen herausgreifen? Erzeugen Sie damit einen neuen String a (beginnend mit dem Zeichen "a") und einen neuen String b (beginnend mit dem Zeichen "b").
Erzeugen Sie eine Liste words mit den einzelnen Wörtern in folgendem String unter Verwendung einer geeigneten String-Methode:
s = "eins/zwei/drei/vier/fünf/sechs/sieben/acht"Definieren Sie eine Funktion replace_vowels, die einen Text und ein Zeichen als Argumente entgegennimmt. Die Funktion soll einen neuen String zurückgeben, in dem alle Vokale (Groß- und Kleinbuchstaben) im ursprünglichen Text durch das spezifizierte Zeichen ersetzt werden.
Beispiele:
>>> replace_vowels("Hello World!", "*")
"H*ll* W*rld!"
>>> replace_vowels("PYTHON IS FUN", "#")
"PYTH#N #S F#N"Erklären Sie, warum der folgende Code zur Berechnung der Summe von fünf Zahlen nicht funktioniert:
sum(1, 2, 3, 4, 5)Geben Sie einen korrekten Funktionsaufruf an, der die Summe dieser Zahlen berechnet!
Define a function countdown that prints a countdown on the screen. The countdown should start from a given number and count down to zero. The start number and the step size should be optional arguments (with default values of 5 for the start number and 1 for the step size). Definieren Sie eine Funktion countdown, die einen Countdown am Bildschirm ausgibt. Der Countdown soll von einer gegebenen Zahl starten und bis Null herunterzählen. Die Startzahl und die Schrittweite sollen optionale Argumente sein (mit Standardwerten von 5 für die Startzahl und 1 für die Schrittweite).
Zwei mögliche Funktionsaufrufe und deren Ausgaben sind unten gezeigt:
>>> countdown()
5 - 4 - 3 - 2 - 1 - 0 - Liftoff!
>>> countdown(7, 2)
7 - 5 - 3 - 1 - Liftoff!Stellen Sie sicher, dass die Ausgabe genau wie gezeigt aussieht!
Gegeben sei ein NumPy-Array y, welches durch folgenden Code erzeugt wird:
from numpy.random import default_rng
rng = default_rng(2)
y = 10 + 2 * rng.standard_normal(10000)Erzeugen Sie mit Matplotlib eine Grafik mit zwei nebeneinanderliegenden Plots. Der linke Plot soll ein Streudiagramm der ersten 100 Werte von y (y-Achse) gegen eine Zahlenfolge von 1 bis 100 (x-Achse) enthalten. Der rechte Plot soll ein Histogramm der Werte in y mit 30 Bins enthalten.
Gegeben sei eine Liste von Strings x = ["This", "is", "a", "sample", "list"]. Verwenden Sie eine List Comprehension, um eine neue Liste namens lengths zu erstellen, welche die Längen jedes Strings in x enthält.
Ein Anagramm ist ein Wort, das durch Umordnen der Buchstaben eines anderen Wortes gebildet wird. Schreiben Sie eine Funktion is_anagram, die überprüft, ob zwei gegebene Strings Anagramme voneinander sind. Die Funktion soll True oder False zurückgeben. Testen Sie Ihre Funktion mit den Strings “listen” und “silent” sowie “hello” und “world” (die Funktion sollte für das erste Paar True und für das zweite Paar False zurückgeben).
The eingebaute Funktion sorted könnte hilfreich sein.
Definieren Sie eine Funktion filter_numbers, die eine Liste von Ganzzahlen als Argument entgegennimmt und eine neue Liste zurückgibt. Diese soll nur die geraden oder ungeraden Zahlen aus der Eingabeliste enthalten, abhängig vom Wert eines zweiten Arguments even. Wenn even gleich True ist (Standardwert), soll die Funktion eine Liste mit geraden Zahlen zurückgeben; wenn even gleich False ist, soll sie eine Liste mit ungeraden Zahlen zurückgeben.
Verwenden Sie eine Schleife, um den Text "Hello number X!" 10 Mal auszugeben, wobei X die aktuelle Iterationsnummer ist (beginnend bei 1). Die Ausgabe sollte wie folgt aussehen:
Hello number 1!
Hello number 2!
Hello number 3!
Hello number 4!
Hello number 5!
Hello number 6!
Hello number 7!
Hello number 8!
Hello number 9!
Hello number 10!
Definieren Sie zwei Funktionen ps_to_kw und kw_to_ps, die zwischen Pferdestärken (PS) und Kilowatt (kW) umrechnen. 1 kW entspricht ungefähr 1.36 PS. Die Funktion ps_to_kw soll eine Leistung in PS in kW zurückgeben, während kw_to_ps eine Leistung in kW in PS zurückgeben soll.
Testen Sie Ihre Funktionen mit den folgenden Argumenten:
>>> ps_to_kw(100)
73.52941176470588
>>> kw_to_ps(73.53)
100.00080000000001Gegeben sei der String s = "supercalifragilisticexpialidocious". Verwenden Sie geeignete String-Methoden oder eingebaute Funktionen, um folgendes herauszufinden:
"i"."i"."i" im String.s in Großbuchstaben umwandelt."i" durch "!" ersetzt.Definieren Sie für die Lösung dieser Aufgabe keine eigenen Funktionen!
Schreiben Sie eine Funktion longest_word, die einen String sentence als Eingabe erhält und das längste Wort in diesem String zurückgibt. Falls es mehrere längste Wörter mit derselben Länge gibt, soll einfach das erste längste Wort zurückgegeben werden. Testen Sie Ihre Funktion mit dem Satz "The quick brown fox jumps over the lazy dog" (das längste Wort in diesem Satz ist "quick").
Verwenden Sie die String-Methode split(), um den String sentence in einzelne Wörter aufzuteilen. Sie können davon ausgehen, dass der Eingabestring nur alphabetische Zeichen und Leerzeichen enthält (keine Satzzeichen, Zahlen oder Sonderzeichen). Iterieren Sie dann über alle gefundenen Wörter, um das längste zu finden und zurückzugeben.
Erzeugen Sie eine Liste, welche die Wurzeln der geraden Zahlen im Bereich von 300 bis 700 (beides inklusive) beinhaltet. Bestimmen Sie die Anzahl der Elemente sowie die Summe aller Elemente!
Definieren Sie eine Funktion count_lower, die die Anzahl der Kleinbuchstaben in einem String zählt und diese Anzahl zurückgibt (der String soll als Argument übergeben werden). Verwenden Sie die String-Methode islower, um jedes einzelne Zeichen im String zu überprüfen.
Rufen Sie Ihre Funktion mit den folgenden Argumenten auf und überprüfen Sie, ob die Ausgaben korrekt sind:
>>> count_lower("Hello World!")
8
>>> count_lower("WHAT IS GOING ON???")
0
>>> count_lower("nnYzKllLSIkcJD4eEx")
9
Definieren Sie eine Funktion check_parity, die überprüft, ob eine Zahl (als Argument übergeben) gerade oder ungerade ist. Der Rückgabewert soll wie folgt bestimmt werden:
Testen Sie Ihre Funktion mit den folgenden Argumenten und überprüfen Sie, ob die Ausgaben korrekt sind:
>>> check_parity(4)
0
>>> check_parity(-7)
1
Erklären Sie, warum der folgende Code nicht funktioniert:
def lambda(x):
return x + 1Geben Sie eine korrekte Implementierung an!
Definieren Sie zwei Funktionen cm_to_inches und inches_to_cm, die Zentimeter in Zoll und umgekehrt umrechnen. Die Umrechnungsfaktoren sind 1 Zoll = 2.54 cm und 1 cm = 1 / 2.54 Zoll. Testen Sie Ihre Funktionen mit den folgenden Argumenten und überprüfen Sie, ob die Ausgaben korrekt sind:
>>> cm_to_inches(10)
3.937007874015748
>>> inches_to_cm(5)
12.7
>>> cm_to_inches(inches_to_cm(5))
5.0
Definieren Sie eine Funktion sum_squares, die die Summe der Quadrate der in einer Liste enthaltenen Zahlen (als Argument übergeben) berechnet und zurückgibt. Testen Sie Ihre Funktion mit der folgenden Liste und überprüfen Sie, ob die Ausgabe korrekt ist:
>>> sum_squares([1, 2, 3, 4, 5])
55
Erzeugen Sie die folgenden drei NumPy-Arrays x, y und z:
x soll 1000 normalverteilte Zufallszahlen mit einem Mittelwert von 10 und einer Standardabweichung von 2 enthalten.y soll 1000 gleichmäßig verteilte Zufallszahlen im Bereich von 5 bis 15 enthalten.z soll 1000 Chi-Quadrat-verteilte Zufallszahlen mit 6 Freiheitsgraden enthalten.Initialisieren Sie den Zufallszahlengenerator mit dem Wert 1.
Verwenden Sie anschließend Matplotlib, um eine Grafik bestehend aus drei Streudiagrammen in einer Zeile zu erstellen. Das linke Streudiagramm soll x gegen y, das mittlere x gegen z und das rechte y gegen z darstellen. Setzen Sie abschließend fig.set_tight_layout(True) für ein schöneres Layout.
Zur Erzeugung der Zufallszahlen benötigen Sie die Methoden normal, uniform und chisquare des Zufallszahlengenerators.
Eine Primzahl ist eine natürliche Zahl größer als 1, die keine positiven Teiler außer 1 und sich selbst hat. Schreiben Sie eine Funktion is_prime, die überprüft, ob eine gegebene Zahl eine Primzahl ist oder nicht. Die Funktion soll True oder False zurückgeben. Testen Sie Ihre Funktion mit den Zahlen 7 und 10 (die Funktion sollte für die erste Zahl True und für die zweite Zahl False zurückgeben).
Der Modulo-Operator % könnte im Zusammenhang mit der Tatsache, dass eine Primzahl nur durch 1 und sich selbst teilbar ist, hilfreich sein. Sie könnten also überprüfen, ob die Zahl \(n\) durch irgendeine Zahl zwischen 2 und \(n - 1\) teilbar ist. Falls ja, ist \(n\) keine Primzahl (sonst schon).
Definieren Sie eine Funktion f, welche eine beliebige positive ganze Zahl entgegennimmt und sich wie folgt verhält:
Rufen Sie diese Funktion mit der Zahl 1000 auf. Danach rufen Sie die Funktion erneut auf, und zwar mit dem Rückgabewert des ersten Funktionsaufrufs. Wiederholen Sie diese Prozedur (den Rückgabewert als neues Argument verwenden), bis die Funktion die Zahl 1 zurückgibt. Wie oft wird die Funktion insgesamt aufgerufen?
Verwenden Sie für den zweiten Teil der Aufgabenstellung eine while-Schleife!
Erklären Sie, warum folgender Code nicht funktioniert:
def f:
return 42Geben Sie auch die korrekte Funktionsdefinition an!
Geben Sie mit Hilfe einer Schleife den folgenden Text am Bildschirm aus:
Countdown starting now!
t minus 10...
t minus 9...
t minus 8...
t minus 7...
t minus 6...
t minus 5...
t minus 4...
t minus 3...
t minus 2...
t minus 1...
t minus 0...
Lift-off!
Die F-Statistik berechnet sich mit folgender Formel:
\[F = \frac{\text{MSM}}{\text{MSR}}\]
Hier ist MSM die mittlere Modellquadratsumme und MSR die mittlere Residuenquadratsumme, welche sich wie folgt berechnen lassen:
\[\text{MSM} = \frac{\text{SSM}}{p - 1}\] \[\text{MSR} = \frac{\text{SSR}}{N - p}\]
Definieren Sie eine Funktion f_statistic, welche den Wert der F-Statistik in Abhängigkeit von SSM (Modellquadratsumme), SSR (Residuenquadratsumme), p (Anzahl der Modellparameter) und N (Stichprobengröße) zurückgibt! Wie lautet der Wert von F für die konkreten Werte von 2452, 1688, 4 und 412 für SSM, SSR, p sowie n?
Definieren Sie eine Funktion namens convert_celsius, welche eine Temperatur in °C (Grad Celsius) entweder in K (Kelvin) oder °F (Grad Fahrenheit) umwandelt und zurückgibt! Ob Kelvin oder Fahrenheit zurückgegeben werden soll, wird durch einen optionalen Parameter namens to bestimmt; dieser soll standardmäßig so gesetzt sein, dass die Temperatur in Kelvin zurückgegeben wird.
Die Umrechnungsvorschriften lauten:
\[F = C \cdot \frac{9}{5} + 32\] \[K = C + 273.15\]
Rufen Sie Ihre Funktion dann auf, um folgende Temperaturen umzuwandeln:
Erklären Sie, warum folgender Code nicht funktioniert:
sum = 0
for i in range(10):
sum += i
sum([1, 2, 3, 4, 5])Geben Sie auch eine korrekte Implementierung an!
Erklären Sie, warum folgender Code nicht funktioniert und geben Sie eine korrekte Lösung an:
x = (2) # create tuple with one element
print(x[0]) # access and print that elementEs soll ein Tuple mit einem einzigen Element angelegt werden. Anschließend soll dieses Element per Indizierung am Bildschirm ausgegeben werden.
Schreiben Sie eine Funktion describe_number, welche überprüft, ob eine per Argument übergebene ganze Zahl gleich 10, gerade oder ungerade ist. Ist sie gerade, soll die Zahl 1 zurückgegeben werden. Ist sie ungerade, soll 2 zurückgegeben werden. Ist die Zahl durch 10 teilbar, soll 10 zurückgegeben werden.
Rufen Sie anschließend Ihre Funktion mit den ganzen Zahlen von \(-110\) bis \(230\) (inklusive) auf und summieren Sie alle Rückgabewerte. Die korrekte Summe beträgt 826.
Zahlen, die durch 10 teilbar sind, sind auch gerade Zahlen. Dennoch soll für diese Zahlen immer 10 zurückgegeben werden (und nicht 1).
Erklären Sie, warum folgender Code nicht funktioniert (er enthält zwei Fehler):
a = 3
if a < 10
print "a is less than 10."Geben Sie auch den korrekten Code an!
Definieren Sie eine Funktion f, welche zwei Parameter hat und damit folgenden mathematischen Ausdruck berechnet und zurückgibt:
\[\sqrt{\frac{s_1^2 + s_2^2}{2}}\]
Rufen Sie anschließend Ihre Funktion mit Werten von \(s_1 = 5\) und \(s_2 = 27\) auf!
Schreiben Sie eine Funktion decibel, welche eine Zahl in die Einheit Dezibel umrechnet und zurückgibt. Es gibt zwei verschiedene Arten, diese Umrechnung für eine gegebene Zahl \(x\) durchzuführen:
Die Funktion soll beide Varianten berechnen können – welche berechnet wird soll durch einen optionalen Parameter bestimmt werden können. Standardmäßig soll die Variante 1 durchgeführt werden. Die beiden möglichen Werte dieses Parameters sollen die Strings "power" (Variante 1) bzw. "amplitude" (Variante 2) sein.
Verwenden Sie die Funktion log10 aus dem Modul math.
Hier einige Beispiele für mögliche Funktionsaufrufe:
>>> decibel(10)
10.0
>>> decibel(10, "amplitude")
20.0
>>> decibel(2, "power")
3.010299956639812