Seite 1 von 1
Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:21
von .sTr0nG
Hallo erstmal,
da ich noch gaaaanz neu bin, habe noch absolut keine Ahnung wohin so eine Frage kommt..
Da ich nächste Woche eine Arbeit schreibe und nicht wirklich weiss was an meinem Script falsch ist,
wäre es nett von euch wenn ihr mir das sagen könntet
Aufgabe: Erstelle ein ''Parkhausscript'' wo man eine flexible Ein/-Ausfahrzeit eingeben kann. Der Stundenpreis betragt 2€, ab der 5ten Stunde kostet es jedoch nurnoch 1€ pro weiterer Std.
Script als Datei:
http://www.file-upload.net/download-757 ... us.py.html
Script als Text:
Code: Alles auswählen
Einfahrtzeit_Std=input ("Einfahrtzeit_Std: ")
Einfahrtzeit_Min=input ("Einfahrtzeit_Min: ")
Ausfahrtzeit_Std=input ("Ausfahrtzeit_Std: ")
Ausfahrtzeit_Min=input ("Ausfahrtzeit_Min: ")
Stundenpreis=2
Parkzeit_Std=Ausfahrtzeit_Std - Einfahrtzeit_Std
Parkzeit_Min=Ausfahrtzeit_Min - Einfahrtzeit_Min
if Parkzeit_Std <5:
Stundenpreis=1
Betrag=Parkzeit_Std*Stundenpreis
print ("Parkzeit_Std: "),Parkzeit_Std
print ("Parkzeit_Min: "),Parkzeit_Min
print ("Betrag: "),Betrag
P.S.: Gibt es hier Spoiler? Der übliche [spoiler]xxxxxxx[/spoiler] funktioniert nicht..
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:39
von BlackJack
@.sTr0nG: Die Bedingungen im Programm spiegeln einfach nicht die Bedingungen in der Aufgabenstellung wieder und dadurch werden falsche Preise berechnet.
Erkläre mal wie viel jeweils 1, 3, 5, 7, und 10 Stunden Parken kosten, und wie sich der Preis zusammen setzt.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:44
von .sTr0nG
Ich wäre ja schon froh wenn er überhaupt Preise berechnet.
Nachdem ich die Ein/-Ausfahrzeiten eingegeben habe kommt diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Python33\Parkhaus.py", line 6, in <module>
Parkzeit_Std=Ausfahrtzeit_Std - Einfahrtzeit_Std
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Da ich dieses Thema erst neu habe, kann ich damit kaum/garnichts anfangen.
ich vermute nur mal das irgendwas in der 6ten zeile falsch ist, was weiss ich jedoch nicht.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:48
von Gary123456
Überprüfe mal die Datentypen. Man kann nicht String - String rechnen.
Das wär das gleiche wie:
"Hallo"-"Hello"
Geht natürlich nicht.
Stichwort: Datentypkonvertierung
Code: Alles auswählen
Einfahrtzeit_Std=input ("Einfahrtzeit_Std: ")
Einfahrtzeit_Min=input ("Einfahrtzeit_Min: ")
Ausfahrtzeit_Std=input ("Ausfahrtzeit_Std: ")
Ausfahrtzeit_Min=input ("Ausfahrtzeit_Min: ")
EDIT: inputs speichern immer nur als String ab!
Diese Zeilen sind in int oder float umzuwandeln.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:48
von /me
.sTr0nG hat geschrieben:Nachdem ich die Ein/-Ausfahrzeiten eingegeben habe kommt diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Python33\Parkhaus.py", line 6, in <module>
Parkzeit_Std=Ausfahrtzeit_Std - Einfahrtzeit_Std
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Du versuchst mit Strings zu rechnen. Um Strings in Zahlen zu konvertieren gibt es
int und
float.
.sTr0nG hat geschrieben:Da ich dieses Thema erst neu habe, kann ich damit kaum/garnichts anfangen.
Also bitte, noch eindeutiger geht die Fehlermeldung nicht. Ich habe meiner Frau (die kein Python programmiert) diese Fehlermeldung gezeigt und nach weniger als 3 Sekunden die korrekte Diagnose bekommen.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 09:54
von BlackJack
@.sTr0nG: `input()` gibt Zeichenketten (Datentyp `str`) zurück und die kann man nicht voneinander abziehen. Was sollte zum Beispiel bei 'Haus' - 'Baum' auch das Ergebnis sein‽ Du musst die Eingaben in Zahlen umwandeln. Zum Beispiel mit `int()` in ganze Zahlen. Zahlen kann man dann voneinander abziehen.
Das nächste „technische” Problem sind die `print()`\s am Ende. Da solltest Du Dir noch einmal anschauen wie das aussehen muss wenn man mehr als einen Wert mit einem `print()`-Aufruf ausgeben will. So wie es jetzt dort steht bildest Du nämlich Tupel aus dem Rückgabewert von `print()` und den jeweiligen Variablen. Und mit den Tupeln wird dann nichts gemacht, also ist das ein recht sinnfreies Konstrukt.
Ansonsten bleibt meine Frage noch bestehen: Erkläre mal wie viel jeweils 1, 3, 5, 7, und 10 Stunden Parken kosten, und wie sich der Preis zusammen setzt.
Denn wenn die rein „technischen” Probleme gelöst sind, werden immer noch falsche Preise berechnet.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 10:06
von .sTr0nG
@BlackJack:
1 Std: Stundenpreis(2€) * Differenz zwischen Einfahrtzeit u Ausfahrtzeit
3 Std: Stundenpreis(2€) * Differenz zwischen Einfahrtzeit u Ausfahrtzeit
5 Std: 2x normaler Stundenpreis(2€) * Differenz zwischen Einfahrt u Ausfahrtzeit +1x neu berechneter Stundenpreis (1€) * Differenz zwischen Einfahrtzeit u Ausfahrtzeit
7 Std: 2x normaler Stundenpreis(2€) * Differenz zwischen Einfahrt u Ausfahrtzeit +3x neu berechneter Stundenpreis (1€) * Differenz zwischen Einfahrtzeit u Ausfahrtzeit
10Std: 2x normaler Stundenpreis(2€) * Differenz zwischen Einfahrt u Ausfahrtzeit +6x neu berechneter Stundenpreis (1€) * Differenz zwischen Einfahrtzeit u Ausfahrtzeit
Zumindest würde ich es so machen.
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 10:49
von BlackJack
@.sTr0nG: Wie kommst Du von der Aufgabenstellung auf diese Berechnung? Schlüssel das doch mal für sagen wir mal 7 Stunden Parkzeit auf die einzelnen Stunden auf. Wie viel kostet die 1., die 2., die 3., …, 7. Stunde?
Re: Was ist da falsch?..
Verfasst: Samstag 11. Mai 2013, 11:09
von .sTr0nG
2€ (1 Std) + 2€ (2 Std) + 2€ (3 Std) + 2€ (4 Std)+ 1€ (5 Std) + 1€ (6 Std) + 1€ (7 Std) = 11€
So sollte es zumindest stimmen..
Habe gerade bemerkt das ich oben falsch gerechnet habe, entschuldigung. :d