Anfängerfrage: Einfacher Code mit "input" funktioniert nicht
Verfasst: Freitag 7. Januar 2022, 14:50
Hallo zusammen!
Ich bin neu hier und versuche gerade, mir etwas Python beizubringen. Dazu habe ich mir ein Lehrbuch gekauft ("Schrödinger programmiert Python") und die ersten zwei Kapitel durchgearbeitet. Im zweiten Kapitel habe ich den Code für ein kleines Kassenprogramm erlernt und ihn eigentlich auch genau nach Vorgabe erstellt. Leider funktioniert der Code nicht so, wie er soll. Bevor ich jetzt mit Kapitel 3 weitermache und dabei vermutlich immer wieder auf diesen Basis-Code zurückgreifen muss, wollte ich euch um Hilfe bitten. Der Code ist wie folgt (die Einrückungen habe ich für diesen Forums-Beitrag einmal mit Dots nachgebaut, die .py-Datei kann ich ja hier nicht hochladen, oder?):
eingabe = "j"
while eingabe == "j":
....preis = input("Gib den Preis ein: 20")
....rabatt_in_prozent = input("Rabatt in %: 20")
....preis = float(preis)
....rabatt_in_prozent = float(rabatt_in_prozent)
....rabatt_in_euro = preis/100 * rabatt_in_prozent
....neuer_preis = preis - rabatt_in_euro
....print("Preis mit", rabatt_in_prozent, "% Rabatt ist", neuer_preis)
....zahlung = input("Der Kunde zahlt: 20")
....zahlung = float(zahlung)
....rueckgeld = round(zahlunf - neuer_preis, 2)
....if rueckgeld <0:
........print("Das gezahlte Geld reicht nicht!")
....else:
........print("Gegeben: ", zahlung, "Preis", neuer_preis)
........print("Wechselgeld: ", rueckgeld)
........eingabe = input("Noch einmal? Dann gib 'j' ein!")
print("Das Programm wurde beendet.")
Bei der Ausführung endet die Ausgabe direkt nach der ersten Zeile/dem ersten Input. Irgendwie muss es auch an dem Input liegen, denn wenn ich alle Inputs durch float ersetze, dann funktioniert es eigentlich so, wie es soll: Alle Ausgaben, auch mit ihren Bedingungen und Schleifen werden widergegeben. Als editor nutze ich Thonny auf meinem Windows-Rechner.
Ich hoffe, ich verstoße hiermit nicht gegen irgendeine Konvention, über einen Tipp würde ich mich jedenfalls sehr freuen!
Best!
Floi
Ich bin neu hier und versuche gerade, mir etwas Python beizubringen. Dazu habe ich mir ein Lehrbuch gekauft ("Schrödinger programmiert Python") und die ersten zwei Kapitel durchgearbeitet. Im zweiten Kapitel habe ich den Code für ein kleines Kassenprogramm erlernt und ihn eigentlich auch genau nach Vorgabe erstellt. Leider funktioniert der Code nicht so, wie er soll. Bevor ich jetzt mit Kapitel 3 weitermache und dabei vermutlich immer wieder auf diesen Basis-Code zurückgreifen muss, wollte ich euch um Hilfe bitten. Der Code ist wie folgt (die Einrückungen habe ich für diesen Forums-Beitrag einmal mit Dots nachgebaut, die .py-Datei kann ich ja hier nicht hochladen, oder?):
eingabe = "j"
while eingabe == "j":
....preis = input("Gib den Preis ein: 20")
....rabatt_in_prozent = input("Rabatt in %: 20")
....preis = float(preis)
....rabatt_in_prozent = float(rabatt_in_prozent)
....rabatt_in_euro = preis/100 * rabatt_in_prozent
....neuer_preis = preis - rabatt_in_euro
....print("Preis mit", rabatt_in_prozent, "% Rabatt ist", neuer_preis)
....zahlung = input("Der Kunde zahlt: 20")
....zahlung = float(zahlung)
....rueckgeld = round(zahlunf - neuer_preis, 2)
....if rueckgeld <0:
........print("Das gezahlte Geld reicht nicht!")
....else:
........print("Gegeben: ", zahlung, "Preis", neuer_preis)
........print("Wechselgeld: ", rueckgeld)
........eingabe = input("Noch einmal? Dann gib 'j' ein!")
print("Das Programm wurde beendet.")
Bei der Ausführung endet die Ausgabe direkt nach der ersten Zeile/dem ersten Input. Irgendwie muss es auch an dem Input liegen, denn wenn ich alle Inputs durch float ersetze, dann funktioniert es eigentlich so, wie es soll: Alle Ausgaben, auch mit ihren Bedingungen und Schleifen werden widergegeben. Als editor nutze ich Thonny auf meinem Windows-Rechner.
Ich hoffe, ich verstoße hiermit nicht gegen irgendeine Konvention, über einen Tipp würde ich mich jedenfalls sehr freuen!
Best!
Floi