Tracks
/
Python
Python
/
Übungen
/
Stromrechnung
Stromrechnung

Stromrechnung

Lernübung

Einführung

Python hat drei verschiedene Typen eingebauter Zahlen: Ganzzahlen (int), Gleitkommazahlen (float) und komplexe Zahlen (complex). Fractions (fractions.Fraction) und Decimals (decimal.Decimal) sind ebenfalls über einen Import aus der Standardbibliothek verfügbar.

Ganze Zahlen, einschließlich hexadezimaler (hex()), oktaler (oct()) und binärer (bin()) Zahlen ohne Nachkommastellen, werden ebenfalls als ints bezeichnet:

# Ints are whole numbers.
>>> 1234
1234
>>> type(1234)
<class 'int'>

>>> -12
-12

Zahlen, die einen Dezimalpunkt enthalten (mit oder ohne Nachkommastellen), werden als floats bezeichnet:

>>> 3.45
3.45
>>> type(3.45)
<class 'float'>

Arithmetik

Python unterstützt Arithmetik zwischen diesen verschiedenen Zahlentypen vollständig und wandelt schmalere Zahlen um, damit sie zu ihren weniger schmalen Gegenstücken passen, wenn sie mit den binären arithmetischen Operatoren (+, -, *, /, // und %) verwendet werden.

Addition und Subtraktion

Die Additions- und Subtraktionsoperatoren verhalten sich wie in der normalen Mathematik. Wenn einer oder mehrere der Operanden ein float ist, werden die übrigen ints ebenfalls in floats umgewandelt:

>>> 5 - 3
2
# The int is widened to a float here, and a float is returned.
>>> 3 + 4.0
7.0

Multiplikation

Wie bei der Addition und Subtraktion wandelt die Multiplikation schmalere Zahlen um, damit sie zu ihren weniger schmalen Gegenstücken passen:

>>> 3 * 2
6

>>> 3 * 2.0
6.0

Division

Die Division gibt immer ein float zurück, selbst wenn das Ergebnis eine ganze Zahl ist:

>>> 6/5
1.2

>>> 6/2
3.0

Ganzzahlige Division

Wenn ein int-Ergebnis benötigt wird, kannst du die ganzzahlige Division verwenden, um das Ergebnis abzuschneiden. Die ganzzahlige Division wird mit dem Operator // durchgeführt:

>>> 6//5
1

>>> 6//2
3

Modulo

Der Modulo-Operator (%) gibt den Rest der Division der beiden Operanden zurück:

# The result of % is zero here, because dividing 8 by 2 leaves no remainder
>>> 8 % 2
0

# The result of % is 2 here, because 3 only goes into 5 once, with 2 leftover
>>> 5 % 3
2

Eine andere Betrachtungsweise von 5 % 3:

>>> whole_part = int(5/3)
1

>>> decimal_part = 5/3 - whole_part
0.6666666666666667

>>> whole_remainder = decimal_part * 3
2.0

Runden

Python stellt eine eingebaute Funktion round(number, <decimal_places>) bereit, um eine Gleitkommazahl auf eine bestimmte Anzahl von Nachkommastellen zu runden. Wenn keine Anzahl von Nachkommastellen angegeben ist, wird die Zahl auf die nächste ganze Zahl gerundet und gibt ein int zurück:

>>> round(3.1415926535, 2)
3.14

>>> round(3.1415926535)
3

Priorität und Klammern

In Python kannst du Klammern verwenden, um Ausdrücke zu gruppieren. Das ist nützlich, wenn du die Standardreihenfolge der Operationen überschreiben möchtest.

>>> 2 + 3 * 4
14

>>> (2 + 3) * 4
20

Python folgt für die Operatorrangfolge der PEMDAS-Regel. Das bedeutet, dass Berechnungen innerhalb von () die höchste Priorität haben, gefolgt von **, dann *, /, //, %, + und -:

>>> 2 + 3 - 4 * 4
-11

>>> (2 + 3 - 4) * 4
4

# In the following example, the `**` operator has the highest priority, then `*`, then `+`
# Meaning we first do 4 ** 4, then 3 * 64, then 2 + 192
>>> 2 + 3 * 4 ** 4
770

Genauigkeit und Darstellung

Ganzzahlen in Python haben beliebige Genauigkeit. Die Anzahl der Stellen ist nur durch den verfügbaren Speicher des Hostsystems begrenzt.

Gleitkommazahlen werden üblicherweise mit einem double in C implementiert (15 Dezimalstellen Genauigkeit), können aber je nach Hostsystem in ihrer Darstellung variieren. Komplexe Zahlen haben einen real- und einen imaginary-Teil, die beide durch Gleitkommazahlen dargestellt werden.

Für ausführlichere Erörterungen der Probleme und Grenzen der Gleitkommaarithmetik über Programmiersprachen hinweg, schau dir 0.30000000000000004.com und das Python-Tutorial an.

Anleitung

Das Unternehmen, für das du arbeitest, möchte seinen CO2-Fußabdruck verkleinern. Deshalb sollst du ein Programm schreiben, das den Stromverbrauch und die Kosten für den Betrieb der Elektrogeräte berechnet.

1. Ermittle die zusätzlichen Stunden

Dein Arbeitgeber hat ein Programm, das die Laufzeit verschiedener Elektrogeräte berechnet. Aktuell wird die Zeit in Stunden gespeichert. Als dein Arbeitgeber die Stunden addierte, fiel ihm auf, dass die Zeitdauer nicht stimmte. Er möchte, dass du 3 zusätzliche Stunden zu den Zeitdaten addierst. Außerdem möchte er wissen, wie viele „zusätzliche“ Stunden es nach der Umrechnung der Daten in „volle“ Tage gibt (ein Tag hat 24 Stunden). Die umzurechnende Zeit besteht möglicherweise nicht aus vollen Tagen.

Implementiere eine Funktion get_extra_hours(), die eine Ganzzahl mit der Anzahl der Stunden entgegennimmt. Die Funktion soll die passende Anpassung der „zusätzlichen Stunden“ vornehmen und dann mit return eine Ganzzahl zurückgeben, die angibt, wie viele Stunden von der Gesamtsumme abgezogen werden müssen, um die Zeit in „vollen“ Tagen zu erhalten.

>>> get_extra_hours(25)
4

2. Ermittle den kW-Wert

Dein Arbeitgeber möchte den Stromverbrauch der verschiedenen Elektrogeräte in kW wissen. kW steht für Kilowatt, wobei Watt eine Einheit der Leistung ist. Kilo im Einheitennamen ist ein Präfix des metrischen Systems und bedeutet 1000. Ein Kilowatt == 1000 Watt.

Implementiere eine Funktion get_kW_value(), die eine Ganzzahl mit der Anzahl der Watt entgegennimmt. Die Funktion soll dann die Watt als Kilowatt mit einer auf 1 Nachkommastelle gerundeten Zahl mit return zurückgeben.

>>> get_kW_value(1150)
1.2

3. Ermittle den kWh-Wert

Um die Kosten für den Betrieb der Elektrogeräte berechnen zu können, muss dein Arbeitgeber den Stromverbrauch in kWh kennen. kWh steht für Kilowattstunde, wobei die Stunde eine Zeiteinheit ist. Eine Kilowattstunde == 1000 Watt, die 1 Stunde lang verbraucht werden. Eine Stunde besteht aus 60 Minuten und eine Minute aus 60 Sekunden. Eine Stunde entspricht 3600 Sekunden. Um den kWh-Wert zu berechnen, musst du Watt in kW umrechnen und das Ergebnis dann ganzzahlig durch 3600 dividieren.

Implementiere eine Funktion get_kWh_value(), die eine Ganzzahl mit der Anzahl der Watt entgegennimmt. Die Funktion soll dann die Kilowattstunden als Ganzzahl mit return zurückgeben.

>>> get_kWh_value(5000000)
1

4. Ermittle den Wirkungsgrad

Elektrogeräte arbeiten nicht mit 100 % Wirkungsgrad. Deshalb möchte dein Arbeitgeber, dass du den Wirkungsgrad der Elektrogeräte berechnest. Um den Wirkungsgrad zu erhalten, musst du den Leistungsfaktor (eine Gleitkommazahl zwischen 0 und 100) durch 100 teilen.

Implementiere eine Funktion get_efficiency(), die eine Gleitkommazahl mit dem Leistungsfaktor entgegennimmt. Die Funktion soll dann den berechneten Wirkungsgrad als Gleitkommazahl mit return zurückgeben.

>>> get_efficiency(80)
0.8

5. Ermittle die Kosten

Dein Arbeitgeber möchte die Kosten für den Betrieb der Elektrogeräte wissen. Die Kosten für den Betrieb der Elektrogeräte sind die verbrauchte Leistung multipliziert mit den Kosten pro kWh. Die verbrauchte Leistung ist die angegebene Leistung geteilt durch den berechneten Wirkungsgrad.

Implementiere eine Funktion get_cost(<watts>,<power_factor>,<price>), die eine Ganzzahl mit der Anzahl der Watt, eine Gleitkommazahl mit dem Leistungsfaktor und eine Gleitkommazahl mit den Kosten pro kWh entgegennimmt. Die Funktion soll dann die Kosten für den Betrieb der Elektrogeräte als Gleitkommazahl mit return zurückgeben.

>>> get_cost(5000000, 80, 0.25)
0.3125
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Stromrechnung zu starten?

Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.