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 Magneto (50 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