Beispiel - Temperaturumrechner
Hitzrekord in den USA
Neulich stand in einer Zeitung:
Im Death Valley nordwestlich von Los Angeles wurden gestern 119 Grad erreicht.
Ziemlich heiß! Da benötigt man keinen Herd zum Wasserkochen, oder? 119 Grad ist heiß, aber nicht ganz so heiß, wie man vielleicht auf den ersten Blick denkt. Zu beachten ist, dass Temperaturen in den USA in Grad Fahrenheit angegebenen werden. 119 Grad Fahrenheit entsprechen etwa 48 Grad Celsius. Aber, das ist immer noch sehr heiß.
Umrechnung von Temperaturangaben
Wenn man öfters Temperaturangaben in den USA und in Europa vergleichen möchte, benötigt man einen Temperaturumrechner von Fahrenheit in Celsius und umgekehrt von Celsius in Fahrenheit.
Hier die Umrechnungsformeln:
tC = (tF − 32)· 5/9 und tF = tC· 1.8 + 32
Zur Umrechnung von Fahrenheit in Celsius konzipieren wir die folgende Funktion.
Mit der Umrechnungsformel lässt sich diese Funktion direkt definieren.
def fahrenheitToCelsius(temperatur):
return (temperatur - 32)*(5/9)
Aufgabe 1: Temperaturumrecher
(a) Teste die Funktion fahrenheitToCelsius
mit verschiedenen Übergabedaten.
(b) Entwickle analog eine Funktion celsiusToFahrenheit
.
Variante: Rückgabe als Datum vom Typ "ganze Zahl"
Das Ergebnis bei der Berechnung der Celsius-Temperatur soll jetzt als gerundeter Wert vom Datentyp int
zurückgegeben werden.
Funktionsdefinition:
def fahrenheitToCelsius(temperatur):
return round((temperatur - 32)*(5/9))
Beachte, dass hier die vordefinierte Funktion round
benutzt wird.
Aufgabe 2
Teste diese Funktion.
Variante: Rückgabe als Datum vom Typ "Tupel"
Zurückgegeben werden soll jetzt ein Tupel bestehend aus einer Gleitkommazahl und einer Zeichenkette.
Funktionsdefinition:
def fahrenheitToCelsius(temperatur):
return ((temperatur - 32)*(5/9), '°C')
Eine Funktion kann also auch mehrere Werte in Form eines Datentupels zurückgeben.
Aufgabe 3
Teste diese Funktion.
Variante: Rückgabe als Datum vom Typ "Zeichenkette"
Hier soll jetzt eine Temperaturangabe mit dem Zusatz "°c" zurückgegeben werden.
Funktionsdefinition:
def fahrenheitToCelsius(temperatur):
return str((temperatur - 32)*(5/9)) + '°C'
Mit der Funktion str
wird die berechnete Zahl in eine Zeichenkette umgewandelt. Mit der
Funktion +
werden dann zwei Zeichenketten aneinandergefügt.
Aufgabe 3
Teste diese Funktion.
Aufgabe 4: Wortreicher Temperaturumrechner
Ändere die Funktionsdefinition so ab, dass folgendes Verhalten vorliegt.
>>> fahrenheitToCelsius(118)
'118°F entspricht etwa 48°C'
Aufgabe 5
Entwickle verschiedene Varianten für die Funktion celsiusToFahrenheit
.
Aufgabe 6
Informiere dich über ...