Python :: Aufgabe #310 :: Lösung #3

5 Lösungen Lösungen öffentlich
#310

Berechnung Kfz-Steuer (Deutschland 2021)

Anfänger - Python von JKooP - 15.12.2020 um 19:35 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist, die Kfz- Steuer sowohl für Benzin-, als auch Dieselfahrzeuge
ab dem 01.01.2021 für Deutschland zu berechnen.

Übergeben werden sollen die Parameter: Otto- o. Dieselfahrzeug, Hubraum in ccm, CO2 in g.

Als Ergebnis soll die Gesamtsteuer in Euro fürs Jahr ausgegeben werden.

Eine ausführliche Berechnungshilfe findet man hier!

Viel Spaß
#3
1x
vote_ok
von 0 (0 Punkte) - 30.12.2020 um 20:29 Uhr
Mein Ziel beim Programmieren der Funktion war es, dass die CO2-Preistabelle leicht geändert oder erweitert werden kann.

Quellcode ausblenden Python-Code
import math

def kfz_steuer_2021(fahrzeugtyp, hubraum, co2_ausstoss):
    
    # Berechnung der Hubraum-Steuer
    hubraum_preistabelle = {'otto': 2, 'diesel': 9.5}

    hubraum_steuer = 0
    
    if hubraum > 0:
        hubraum_preis = hubraum_preistabelle[fahrzeugtyp]
        hubraum_steuer = math.ceil(hubraum / 100) * hubraum_preis
    
    
    # Berechnung der CO2-Steuer
    co2_preistabelle = [
                        [96, 2],
                        [116, 2.2],
                        [136, 2.5],
                        [156, 2.9],
                        [176, 3.4],
                        [196, 4],
    ]

    co2_steuer = 0
        
    for zeile in range(0, len(co2_preistabelle)):
        co2_preisstufe = co2_preistabelle[zeile][0]
        co2_preis = co2_preistabelle[zeile][1]
               
        if co2_ausstoss >= co2_preisstufe:
            if zeile < len(co2_preistabelle) - 1: # alle Zeilen außer der letzten
                co2_preis_max = co2_preistabelle[zeile + 1][0] - co2_preistabelle[zeile][0]
                co2_menge = min(co2_ausstoss - (co2_preisstufe - 1), co2_preis_max)
            else: # letzte Zeile
                co2_menge = co2_ausstoss - (co2_preisstufe - 1)
            
            co2_steuer += co2_menge * co2_preis

            
    # Berechnung der kompletten KFZ-Steuer
    kfz_steuer_komplett = round(hubraum_steuer + co2_steuer, 2)
    
    
    # Ausgabe zur Kontrolle
    # print('Hubraum-Steuer:', hubraum_steuer, '€')
    # print('CO2-Steuer:', co2_steuer, '€') 
    # print('KFZ-Steuer komplett:', kfz_steuer_komplett, '€')
    
    return kfz_steuer_komplett

# Berechnungs-Beispiel Volvo XC 90 B5
kfz_steuer_2021('diesel', 1969, 158)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1994449

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.