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
Anfängerfrage: Einfacher Code mit "input" funktioniert nicht
Schoen, dass du das mit den Einrueckungen bemerkt hast. Mit dem </>-Knopf im vollstaendigen Editor kannst du dir das Leben in Zukunft aber leichter machen.
Fuer mich funktioniert der Code weiter als bis zu dem input. Aber da sind diverse Fehler drin. zahlunf, und rueckgeld mal mit und mal ohne ue, und das else ist falsch eingerueckt.
Fuer mich funktioniert der Code weiter als bis zu dem input. Aber da sind diverse Fehler drin. zahlunf, und rueckgeld mal mit und mal ohne ue, und das else ist falsch eingerueckt.
Hi _deets_
Vielen Dank für deine Antwort und die Hinweise. Sorry für die peinlichen Tipper und die falsche Einrückung hier im Editor, die habe ich einmal hier und in meiner .py-Datei korrigiert. Das ändert leider bei mir nichts. Die Ausgabe in Thonny ist lediglich:
Python 3.7.9 (bundled)
>>> %Run 96.py
Gib den Preis ein: 20
Komisch, oder?
Best! Floi
Vielen Dank für deine Antwort und die Hinweise. Sorry für die peinlichen Tipper und die falsche Einrückung hier im Editor, die habe ich einmal hier und in meiner .py-Datei korrigiert. Das ändert leider bei mir nichts. Die Ausgabe in Thonny ist lediglich:
Python 3.7.9 (bundled)
>>> %Run 96.py
Gib den Preis ein: 20
Komisch, oder?
Best! Floi
Hm ok, ich hab`s jetzt auch einmal in dem Python Editor und der Idle Shell versucht. Es bleibt leider so. Und - wie gesagt - mit float anstatt input funktioniert es grudsätzlich.
Falls noch jemand einen Tipp hat, würde ich mich freuen.
Danke euch! Best! Floi
Falls noch jemand einen Tipp hat, würde ich mich freuen.
Danke euch! Best! Floi
Das sind beides nicht die Kommandozeile. Die Kommandozeile ist CMD.EXE, oder Eingabeaufforderung, oder Terminal im Mac. Ich bin prinzipiell zwar der Ansicht, dass input auch in IDLE funktionieren *sollte*, aber da dein Programm bei mir tut, und es nichts gibt, was man daran aendern kann (ausser den offensichlichen Fehlern), musst du eben diese Fehlerquellen ausschliessen.
Danke _deets_ für deine Antworten. Mit der Kommandozeile (bzw. Eingabeaufforderung) muss ich mich dann wohl noch einmal auseinandersetzen. Wenn ich da den Code kurzerhand reinkopiere, eröffnet sich gleich eine ganz neue Fehlerwelt:
C:\Users\floi>eingabe = "j"
Der Befehl "eingabe" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi>while eingabe == "j":
Der Befehl "while" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> preis = input("Gib den Preis ein: 20")
Der Befehl "preis" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> rabatt_in_prozent = input("Rabatt in %: 20")
Der Befehl "rabatt_in_prozent" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> preis = float(preis)
Der Befehl "preis" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
usw. Zeile für Zeile.
Das sieht ja auch alles nicht wirklich formatiert aus, aber nur reinkopiert nimmt er das so. Wie gesagt, da muss ich mich wohl auch noch einmal mit beschäftigen, wie ich sauber in die "Eingabeaufforderung" reinarbeite. Danke dir, für den Hinweis!
Best! Floi
C:\Users\floi>eingabe = "j"
Der Befehl "eingabe" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi>while eingabe == "j":
Der Befehl "while" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> preis = input("Gib den Preis ein: 20")
Der Befehl "preis" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> rabatt_in_prozent = input("Rabatt in %: 20")
Der Befehl "rabatt_in_prozent" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
C:\Users\floi> preis = float(preis)
Der Befehl "preis" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
usw. Zeile für Zeile.
Das sieht ja auch alles nicht wirklich formatiert aus, aber nur reinkopiert nimmt er das so. Wie gesagt, da muss ich mich wohl auch noch einmal mit beschäftigen, wie ich sauber in die "Eingabeaufforderung" reinarbeite. Danke dir, für den Hinweis!
Best! Floi
Du musst dazu
python meinskript.py
ausfuehren. Nicht einfach den Code einkippen.
Dabei steht python ggf. nicht so da, sondern muss der volle Pfad sein, also sowas wie C:\Python38\bin\python.exe oder sowas. Und dann steht rechts davon der volle Pfad.
Wie gesagt, es ist ueberraschend, dass es bei dir nicht geht - aber bei mir tut's, und darum muss das an deiner Art die zu starten liegen.
python meinskript.py
ausfuehren. Nicht einfach den Code einkippen.
Dabei steht python ggf. nicht so da, sondern muss der volle Pfad sein, also sowas wie C:\Python38\bin\python.exe oder sowas. Und dann steht rechts davon der volle Pfad.
Wie gesagt, es ist ueberraschend, dass es bei dir nicht geht - aber bei mir tut's, und darum muss das an deiner Art die zu starten liegen.