Python :: Aufgabe #299
3 Lösungen
Mobilfunkanbieter (Monatsabrechnung)
Anfänger - Python
von JKooP
- 07.11.2020 um 09:42 Uhr
Ein Mobilfunkanbieter stellt folgende Pakete zur Verfügung:
Paket-Typ....Basispreis....Freiminuten....Minutenpreis
P_Basis........2,95€..............0...................0,10€
P_100..........3.95€.............100................0,12€
P_300..........7,95€.............300................0,15€
P_600..........12,95€...........600................0,20€
P_Flat..........29,95€...........unbegrenzt.....0,00€
Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.
Viel Spaß
Paket-Typ....Basispreis....Freiminuten....Minutenpreis
P_Basis........2,95€..............0...................0,10€
P_100..........3.95€.............100................0,12€
P_300..........7,95€.............300................0,15€
P_600..........12,95€...........600................0,20€
P_Flat..........29,95€...........unbegrenzt.....0,00€
Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.
Viel Spaß
Lösungen:
print('#### Mobilfunk Kostenabfrage ####')
def packet():
print('\nBasis Paket --- Wähle "1"')
print('P100 --- Wähle "2"')
print('P300 --- Wähle "3"')
print('P600 --- Wähle "4"')
print('Flat Paket --- Wähle "5"')
print('Programm Beenden --- Drücke "#"')
while True:
packet()
auswahl = input('\nWähle ein Paket: ')
minuten = float(input('Verbrauchte Minuten: '))
if auswahl == '1':
gesamtbetrag = minuten * 0.10 + 2.95
print('Davon Frei: 0\n\nZu zahlender Betrag: ', gesamtbetrag, '€')
break
elif auswahl == '2':
gesamtbetrag = (minuten - 100) * 0.12 + 3.95
print('Davon Frei: 100\n\nZu zahlender Betrag: ', gesamtbetrag, '€')
break
elif auswahl == '3':
gesamtbetrag = (minuten - 300) * 0.15 + 7.95
print('Davon Frei: 300\n\nZu zahlender Betrag: ', gesamtbetrag, '€')
break
elif auswahl == '4':
gesamtbetrag = (minuten - 600) * 0.20 + 12.95
print('Davon Frei: 600\n\nZu zahlender Betrag: ', gesamtbetrag, '€')
break
elif auswahl == '5':
basispreis = 29.95
print('Davon Frei: Unbegrenzt\n\nZu zahlender Betrag: ', basispreis, '€')
break
elif auswahl == '#':
break
#Mobilfunkanbieter #299
for i in range(1,10):
minuten = int(input("Bitte geben Sie die Anzahl der Gesprächsminuten pro Monat als positive ganze Zahl ein:"))
paket = float(input("""Bitte geben sie einen Basispaketpreis pro Monat in € laut Liste ein:
2.95 € und 0 Freiminuten P_Basis
3.95 € und 100 Freiminuten P_100
7.95 € und 300 Freiminuten P_300
12.95 € und 600 Freiminuten P_600
29.95 € unbegrenzt P_Flat
der gewählte Basispaketpreis in € lautet:"""))
if paket == 2.95 and minuten > 0:
p_basis = 2.95+(minuten*0.10)
print("Der P Basispreis für:", minuten,"Minuten beträgt:",p_basis,"€")
elif paket == 3.95 and 0 < minuten > 100:
p_100 = 3.95 + ((minuten-100)*0.12)
print("Der P 100 für:", minuten,"Minuten beträgt:",p_100,"€")
elif paket == 3.95 and 0 < minuten <= 100:
p100 = 3.95
print("Der P 100 für:", minuten,"Minuten beträgt:",p100,"€")
elif paket == 7.95 and minuten > 300:
p_300 = 7.95+((minuten-300)*0.15)
print("Der P 300 für:", minuten,"Minuten beträgt:",p_300,"€")
elif paket == 7.95 and minuten <= 300:
p300 = 7.95
print("Der P 300 für:", minuten,"Minuten beträgt:",p300,"€")
elif paket == 12.95 and minuten > 600:
p_600 = 12.95+((minuten- 600)*0.20)
print("Der P 600 für:", minuten,"Minuten beträgt:",p_600,"€")
elif paket == 12.95 and minuten <= 600:
p600 = 12.95
print("Der P 600 für:", minuten,"Minuten beträgt:",p600,"€")
elif paket == 29.95 and minuten >= 0:
pFlat = 29.95
print("Der P_Flatpreis für:", minuten,"Minuten beträgt:29.95 €")
else:
print("""Falsche Eingabe. Basispaketpreise nur laut Liste wählen.
Gesprächsminuten müssen positiv sein.""")
DATEN = {
'P_Basis': [2.95, 0, 0.1],
'P_100' : [3.95, 100, 0.12],
'P_300' : [7.95, 300, 0.15],
'P_600' : [12.95, 600, 0.20],
'P_Flat' : [29.95, 9999999, 0.0]
}
def berechne(paket, minuten):
basispreis, freiminuten, minutenpreis = DATEN[paket]
return basispreis + max(minuten-freiminuten, 0) * minutenpreis
print(berechne('P_Basis', 50))
print(berechne('P_100', 50))
print(berechne('P_300', 400))
print(berechne('P_600', 1000))
print(berechne('P_Flat', 1000))
